Select dinámica
Hola
Alguien me podría ayudar a solucionar esta problema? Tengo que hacer una select la cual depende de los campos q el usuario haya rellenado, vamos que lo que quiero hacer es lo siguiente: ir añadiendo en la parte del Where , por ejemplo si el usuario inserta el nombre, nombre = -----------, si inserta el apellido, apellido = ------ y asi con todos los campos q inserte el usuario.
Un saludo
Alguien me podría ayudar a solucionar esta problema? Tengo que hacer una select la cual depende de los campos q el usuario haya rellenado, vamos que lo que quiero hacer es lo siguiente: ir añadiendo en la parte del Where , por ejemplo si el usuario inserta el nombre, nombre = -----------, si inserta el apellido, apellido = ------ y asi con todos los campos q inserte el usuario.
Un saludo
Yo aplico el patron DAO de la siguiente manera:
public final static String QUERY_SRCH_NEMO=
"SELECT * "
+"FROM DB2ADUAN.TC_TAX AS TAX "
+"WHERE TAX.D_TAX_MNM=? ";
public Tax findByKeyNemo(String key,String nemo) throws SQLSystemException {
PreparedStatement stmt;
String qry=null;
String criteria=null;
conn = buildConnection(); //obtengo una conexion SQL
Tax tax = null;
try {
if(key==null){
qry=QUERY_SRCH_NEMO; //hay que buscarlo por nemonico
criteria=nemo;
}
else {
qry=QUERY_SRCH_CVE;
criteria=key;
}
stmt = conn.prepareStatement(qry); //query a ejecutarse
stmt.setString(1,criteria); //Agrega la llave al query
tax = (Tax) super.findSingle(stmt);
} catch (SQLException e) {
e.printStackTrace();
} finally {
super.close(null, null, conn); //cierra la conexion
}
return tax;
}
La clave es usar el PreparedStatement, que es el que se encarga de ir adicionando los datos dinamicamente dependiendo de la entrada que tuviste , es decir sustituye el ? por el valor ingresado.
Si quieres el codigo completo escribeme al correo!!!!
dando tus datos personales porfavor para saber quien eres oki doki???
public final static String QUERY_SRCH_NEMO=
"SELECT * "
+"FROM DB2ADUAN.TC_TAX AS TAX "
+"WHERE TAX.D_TAX_MNM=? ";
public Tax findByKeyNemo(String key,String nemo) throws SQLSystemException {
PreparedStatement stmt;
String qry=null;
String criteria=null;
conn = buildConnection(); //obtengo una conexion SQL
Tax tax = null;
try {
if(key==null){
qry=QUERY_SRCH_NEMO; //hay que buscarlo por nemonico
criteria=nemo;
}
else {
qry=QUERY_SRCH_CVE;
criteria=key;
}
stmt = conn.prepareStatement(qry); //query a ejecutarse
stmt.setString(1,criteria); //Agrega la llave al query
tax = (Tax) super.findSingle(stmt);
} catch (SQLException e) {
e.printStackTrace();
} finally {
super.close(null, null, conn); //cierra la conexion
}
return tax;
}
La clave es usar el PreparedStatement, que es el que se encarga de ir adicionando los datos dinamicamente dependiendo de la entrada que tuviste , es decir sustituye el ? por el valor ingresado.
Si quieres el codigo completo escribeme al correo!!!!
dando tus datos personales porfavor para saber quien eres oki doki???