Mi consulta es la siguiente: estoy iniciándome en el mundo de la programación java en el cual estoy desarrollando una aplicación que permita hacer el registro de personas a una empresa x, todo el procesos de asignación de personas a la base de datos ya está creada y se puede generar el primer registro de ingresos y salida:
Al guardar el primer registro, el código busca en una consulta la cedula o DNI del usuario, lo agrega colocándole la fecha y la hora_ini, dejando el campo hora_fin en blanco y lo guarda en una tabla llamada “Registros”, luego para hacer la salida el código valida si esta cedula o DNI está en la tabla “Registros” y le asigna la hora_fin.
El problema empieza cuando voy a generar el ingreso de la misma persona (ya que el sistema debe de permitir el ingreso y salida de una persona n cantidad de veces al día), pero lo que hace es que actualiza el mismo registro (En la tabla “Registros”, no tiene llave primaria para que permita duplicados).
Mi pregunta es cómo hacer como validar que al encontrar estos tres campos (fecha, hora_ini, hora_fin) llenos o con datos, me genere un nuevo registro?
Agradezco por la colaboración que me puedan brindar.
Dios les Bendiga.
Nota: dejo el codigo que uso para hacer los registros:
Código Java:
Ver original
try { cst .setString(1, idempleado); r=cst .executeQuery(); if(r.next()){ JOptionPane.showMessageDialog(this,"Usuario Encontrado EN TABLA REGISTRO!!","Aviso",JOptionPane.INFORMATION_MESSAGE); this.RCEDULA_EMPLEADO.setText(r.getString(1)); this.RNOM_EMPLEADO.setText(r.getString(2)); this.RAPE_EMPLEADO.setText(r.getString(3)); this.RNOM_EMPLEADOR.setText(r.getString(4)); this.RAPE_EMPLEADOR.setText(r.getString(5)); this.RFECHA_INGRESO.setText(r.getString(6)); this.RHORA_INGRESO.setText(r.getString(7)); this.RHORA_SALIDA.setText(r.getString(8)); this.RNOM_CONSECIONARIO.setText(r.getString(9)); this.RACTIVIDAD.setText(r.getString(10)); this.RMESA_SERVI.setText(r.getString(11)); // if(this.RFECHA_INGRESO.getText().equals(RFECHA_INGRESO)&&(this.RHORA_INGRESO.getText().equals(RHORA_INGRESO)&& // (this.RHORA_SALIDA.getText().equals(RHORA_SALIDA)))){ // this.registroNuevo(); //////// // } // else if(this.RFECHA_INGRESO.getText().equals("")&&(this.RHORA_INGRESO.getText().equals(""))){ this.RFECHA_INGRESO.setText(fecha.toString()); this.RHORA_INGRESO.setText(hora); this.RBTNMODIFICAR_SALIDA.setEnabled(false); }else this.actualizarRegistro(); bloquearCajas(); } else { try { cst1 .setString(1, idempleado); r=cst1 .executeQuery(); if(r.next()){ JOptionPane.showMessageDialog(this,"Usuario Encontrado EN CONSULTA SQL!!","Aviso",JOptionPane.INFORMATION_MESSAGE); this.RCEDULA_EMPLEADO.setText(r.getString(1)); this.RNOM_EMPLEADO.setText(r.getString(2)); this.RAPE_EMPLEADO.setText(r.getString(3)); this.RNOM_EMPLEADOR.setText(r.getString(4)); this.RAPE_EMPLEADOR.setText(r.getString(5)); //// this.RFECHA_INGRESO.setText(r.getString(6)); //// this.RHORA_INGRESO.setText(r.getString(7)); //// this.RHORA_SALIDA.setText(r.getString(8)); this.RNOM_CONSECIONARIO.setText(r.getString(6)); this.RACTIVIDAD.setText(r.getString(7)); this.RMESA_SERVI.setText(r.getString(8)); //CODIGO PARA GENERAR LA FECHA Y HORAS DE INGRESO Y SALIDA if(this.RFECHA_INGRESO.getText().equals("")&&(this.RHORA_INGRESO.getText().equals(""))){ this.RFECHA_INGRESO.setText(fecha.toString()); this.RHORA_INGRESO.setText(hora); this.RBTNMODIFICAR_SALIDA.setEnabled(false); } // else{ //// // } bloquearCajas(); } } } } }