Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/05/2013, 17:25
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 10 meses
Puntos: 1360
Respuesta: Problema al insertar un array en una base de datos sql

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 original
  1. for(i=0; i<32; i++){
  2.                 tDiente = periodontogramaVO.getDientes(i);
  3.                 tNumero = i;
  4.                 System.out.println(tDiente);
  5.                 val = stmt.executeUpdate("INSERT INTO periodontograma (DNI, Numero_Pieza, Estado_Pieza) VALUES ('"+tDNI+"', '"+tNumero+"', '"+tDiente+"')");
  6.                 if (val == 0) {
  7.                     return ERROR;
  8.                 }
  9.             }

Así te aseguras que o todo se hace o no se hace nada.

Código Java:
Ver original
  1. for (i=0; i<32; i++) {
  2.                 tNumero = i;
  3.                 rs = stmt.executeQuery("SELECT Estado_Pieza FROM periodontograma WHERE DNI like '"+tDNI+"' AND Numero_Pieza like '"+tNumero+"'");
  4.                 while (rs.next()) {
  5.                     tDiente = Integer.parseInt(rs.getString("Estado_Pieza"));
  6.                     periodontogramaVO.setDientes(i, tDiente);
  7.                 }
  8.             }
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.