Algunos consejos:
1. Usa PreparedStatement en lugar de andar concatenando string.
http://docs.oracle.com/javase/6/docs...Statement.html eso te va a salvar de un sql injection.
2. Preferente usa transaccions en esta parte.
Código Java:
Ver originalfor(i=0; i<32; i++){
tDiente = periodontogramaVO.getDientes(i);
tNumero = i;
val = stmt.executeUpdate("INSERT INTO periodontograma (DNI, Numero_Pieza, Estado_Pieza) VALUES ('"+tDNI+"', '"+tNumero+"', '"+tDiente+"')");
if (val == 0) {
return ERROR;
}
}
Así te aseguras que o todo se hace o no se hace nada.
Código Java:
Ver originalfor (i=0; i<32; i++) {
tNumero = i;
rs = stmt.executeQuery("SELECT Estado_Pieza FROM periodontograma WHERE DNI like '"+tDNI+"' AND Numero_Pieza like '"+tNumero+"'");
while (rs.next()) {
tDiente
= Integer.
parseInt(rs.
getString("Estado_Pieza")); periodontogramaVO.setDientes(i, tDiente);
}
}
En esta parte la puedes simplificar, haciendo un solo query. No veo necesario hacer 32 queries.
Usa el debbuger para encontrar por que solamente inserta 20 registros (estoy seguro que te arroja alguna excepción o regresa error y no lo estas checando) y por favor usa logs.