Java - Interfaz gráfica swing consultas sql

 
Vista:
Imágen de perfil de Francisco
Val: 85
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Interfaz gráfica swing consultas sql

Publicado por Francisco (56 intervenciones) el 27/09/2018 22:48:33
Hola. Les envío código. Como verán, si busco los médicos por matrícula, me figura el médico que busco por matrícula, pero cuando los busco por especialidad, no me trae nada de la base de datos y queda vacía la tabla.

Pienso que debería poner la sentencia SELECT... WHERE M.matricula =' " + Integer.parseInt(jTxtmatricula.getText()) + " OR ' especialidad =' " + especialidad + " ' ";

Trato de hacerlo así y los encuentro por matricula y me trae datos de la BD pero cuando los busco por especialidad sigo teníendo el mismo problema. ¿Me ayudan por favor?, busco que si los encuentro por matrícula me figure lo que encuentro, así también que me figure si los encuentro por especialidad. O sea, los quiero buscar por matricula o por especialidad, cualquiera de los dos, que me figure datos de la tabla.

Por ej. los busco por matricula y no por especialidad y me trae datos de la BD.

O los busco por especialidad pero no por matrícula y me trae datos de la BD.

public ConsultaMedicoInfoPersonal() {
initComponents();
mostrarDatos("","");
}
void mostrarDatos(String matricula,String especialidad){

DefaultTableModel mod = new DefaultTableModel();

mod.addColumn("matricula");
mod.addColumn("nombre");
mod.addColumn("especialidad");
mod.addColumn("telefono");
mod.addColumn("email");
mod.addColumn("dia de trabajo");
mod.addColumn("hora de entrada");
mod.addColumn("hora de salida");

jTbConsultaMedico.setModel(mod);

String sqlSelect="";

if(matricula.equals("") && especialidad.equals("")){
sqlSelect = "SELECT M.matricula AS `matricula`,M.nombre AS `nombre`,M.especialidad AS `especialidad`,M.telefono AS `telefono`,M.email AS `email`,HT.diaTrabajoSemanal AS `dia de Trabajo`,HT.horaDeEntrada AS `hora De Entrada`,HT.horaDeSalida AS `hora De Salida` FROM medicos AS M LEFT JOIN horariosdetrabajo AS HT ON M.matricula = HT.matricula ORDER BY `matricula`";
}
else{
sqlSelect = "SELECT M.matricula AS `matricula`,M.nombre AS `nombre`,M.especialidad AS `especialidad`,M.telefono AS `telefono`,M.email AS `email`,HT.diaTrabajoSemanal AS `dia de Trabajo`,HT.horaDeEntrada AS `hora De Entrada`,HT.horaDeSalida AS `hora De Salida` FROM medicos AS M LEFT JOIN horariosdetrabajo AS HT ON M.matricula = HT.matricula WHERE M.matricula='" + Integer.parseInt(matricula) + " OR M.especialidad=" + especialidad + "'";//"' OR M.especialidad='" + especialidad +"'";
}

String []info = new String[8];

Conexion cxn = new Conexion();

try{
Connection conn = cxn.getConnection();
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(sqlSelect);

while(rs.next()){
info[0] = rs.getString(1);
info[1] = rs.getString(2);
info[2] = rs.getString(3);
info[3] = rs.getString(4);
info[4] = rs.getString(5);
info[5] = rs.getString(6);
info[6] = rs.getString(7);
info[7] = rs.getString(8);

mod.addRow(info);
}
jTbConsultaMedico.setModel(mod);

} catch (ClassNotFoundException ex) {
Logger.getLogger(AbmMedico.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(AbmMedico.class.getName()).log(Level.SEVERE, null, ex);
} catch (HeadlessException ex) {
Logger.getLogger(AbmMedico.class.getName()).log(Level.SEVERE, null, ex);
}

}

private void jBtConsultarActionPerformed(java.awt.event.ActionEvent evt) {
mostrarDatos(jTxtMatricula.getText(),jTxtEspecialidad.getText());

}

private void jBtMostrarTodosActionPerformed(java.awt.event.ActionEvent evt) {
mostrarDatos("","");
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder