Pero yendo al punto. En esta ocasion el proyecto se trata de crear una aplicación en Java que simule un examen de Certificación. Para ellos debemos conectarnos a una base de datos en mySQL, y tener todos las tablas listas para poder almacenar la información que sera utilizada.
En mi caso, he modelado la base de datos, y a la vez he estado avanzando en la implementación de los mantenimientos de los diferentes elementos del programa. Todo iba de perlas, hasta que me tope con un inconveniente.
Esta es la interface de Mantenimiento de Usuarios que tengo.

El problema surgía cuando ingresaba un nuevo usuario. En la base de datos el Codigo era Auto Incrementable, y en esta ocasion, cuando hacia clic...
Me salia el numero 6. Esto era un problema. Dudo que se pueda dejar el numero 3 sin llenar, no es correcto desde mi punto de vista. Asi que tras analizar un par de minutos, pude sacar un metodo que me permita evitar ese inconveniente. Claro, para ello, tuve que sacar el Auto Incremento. Y me resulto bien, tras varias pruebas funciona bien. Aquí el codigo.------------------------------------------------ public void verificarCodigo(){
int nAnterior=1;
try {
MySqlDBConn mysql = new MySqlDBConn();
Connection conn = mysql.getConnection();
String sql = "select * from tb_user";
PreparedStatement pstm;
pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
while (rs.next()) {
if (nAnterior!=rs.getInt("id_usuario")){
formulario.txtIdUser.setText(""+nAnterior);
break; }
else{nAnterior++;} }
formulario.txtIdUser.setText(""+nAnterior);
}
catch (SQLException e) { e.printStackTrace(); } } -----------------------------------------------------------
Y ahora si me sale el numero correcto.

Ahora, algo de aclaración, quizás haya una forma mejor de hacerlo, pero debo admitir, que en base de datos soy un desastre, y estoy mejorando en aquello. Bueno, eso es todo por hoy.
Saludos.
1 comentario:
Si fuera para un proyecto real, te diría que está algo mal debido a problemas de concurrencia que pudieran ocurrir. Pero como es para un trabajo que tienes simple, pos no hay problema por el momento. Mas bien, lo regular que he visto es que no se muestre el código de la persona que se va registrar hasta luego de registrado =).
Nos vemos man
Publicar un comentario