Hola espero que me puedan ayudar o darme una opinion, el registro lo hace muy bien pero al momento de implementar la consulta de obtener el max id que se registro y la consulta de actualizacion del campo de registro de salida, ya no funciona ni el insertado de registro y mucho menos el de actualizar, es al momento de dar clic en el boton se insertan por default en los campos registro entrada y salida con el formato "yyyy-MM-dd HH:mm:ss"; entonces una vez registrado,obtengo el max id que se registro por ultima vez y verifico si el registro es diferente de vacio; que realize la actualizacion para el campo de registro de salida cuando se de le clic al boton al momento que el empleado realiza su registro de salida y asi haga la actualizacion.
public boolean insertar(modeloAsistencia modeloAsistencia) {
PreparedStatement psmt = null, psmt2 = null, psmt3 = null;
ResultSet tabla = null;
boolean insertOK = false;
try {
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/asistencia");
Connection con = ds.getConnection();
//verifico si el no hay registro que lo inserte
if (modeloAsistencia.getId_registro_asistencia() == 0) {
psmt = con.prepareStatement("INSERT INTO REGISTRO(FECHA,ID_TRABAJADOR,HORA_ENTRADA,HORA_SALIDA) VALUES(?,?,?,?);");
}
psmt.setString(1, modeloAsistencia.getFecha_registro_asistencia());
psmt.setInt(2, modeloAsistencia.getId_trabajador());
psmt.setTimestamp(3, (Timestamp) modeloAsistencia.getRegistro_hora_entrada());
psmt.setTimestamp(4, (Timestamp) modeloAsistencia.getRegistro_hora_salida());
if (psmt.executeUpdate() == 1) {
psmt2 = con.prepareStatement(SELECT MAX(ID_REGISTRO) AS ID FROM REGISTRO;");
tabla = psmt2.executeQuery();
tabla.next();
int id_registro_asistencia = 0;
id_registro_asistencia = tabla.getInt(1);
if (psmt2.executeUpdate() == 1) {
if (id_registro_asistencia != 0) {
//inicia la consulta de actualizacion
psmt3 = con.prepareStatement("UPDATE REGISTRO_ASISTENCIA SET REGISTRO_HORA_SALIDA='"+modeloAsistencia.getRegistro_hora_salida()+"' WHERE ID_REGISTRO="+modeloAsistencia.getId_registro_asistencia()+"");
}
}
if (psmt3.executeUpdate() == 1) {
psmt3.close();
insertOK = true;
} else {
insertOK = false;
}
} else {
insertOK = false;
}
psmt.close();
psmt2.close();
tabla.close();
con.close();
} catch (Exception e) {
System.out.println("Error: " + e);
}
return insertOK;
}