Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Multiples insersiones en sqlite desde java

Estas en el tema de Multiples insersiones en sqlite desde java en el foro de Java en Foros del Web. buena he intentado hacer multiples insersiones en base de datos de sqlite con java utilizando la senticia sql Código: "REPLACE INTO mytabla VALUES (1,segundo,tercero),(2,otro segundo,otro ...
  #1 (permalink)  
Antiguo 28/09/2017, 13:11
Avatar de gacsnic75  
Fecha de Ingreso: septiembre-2012
Mensajes: 25
Antigüedad: 12 años, 2 meses
Puntos: 0
Multiples insersiones en sqlite desde java

buena he intentado hacer multiples insersiones en base de datos de sqlite con java utilizando la senticia sql
Código:
"REPLACE INTO mytabla VALUES (1,segundo,tercero),(2,otro segundo,otro tercero),(2,otro segundo,otro tercero)
desde el cliente de sqlite3 lo logre hacer, pero desde java me manda un error que dice
Cita:
near ",": syntax error
el codigo en java que utilizo es

Código:
String strSql="REPLACE INTO mytabla VALUES (1,segundo,tercero),(2,otro segundo,otro tercero),(2,otro segundo,otro tercero);"
 int rs=-1;
        try {
            rs=cxnBD.createStatement().executeUpdate(strSql);
        } catch (SQLException e) {
            AdminExcepciones.saySystemExcepcion("Error: Conexión incorrecta."+e.getMessage() ,getClass());
        }
este mismo codigo si solo hago una inserción no me da error y guarda bien pero con multiple ya me sale el error de la coma","

Código:
String strSql="REPLACE INTO mytabla VALUES (1,segundo,tercero);"
 int rs=-1;
        try {
            rs=cxnBD.createStatement().executeUpdate(strSql);
        } catch (SQLException e) {
            AdminExcepciones.saySystemExcepcion("Error: Conexión incorrecta."+e.getMessage() ,getClass());
        }
pense que era falla de sqlite que no admitía inserciones multiples pero lo proble en el cliente sqlite3 y funciono bien

alguna idea de lo que debo buscar para resolver el problema, de antemano gracias
  #2 (permalink)  
Antiguo 29/09/2017, 06:11
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 9 meses
Puntos: 78
Respuesta: Multiples insersiones en sqlite desde java

Según la página oficial, no lo soporta.

http://www.sqlite.org/cvstrac/wiki?p=UnsupportedSql

Saludos
  #3 (permalink)  
Antiguo 29/09/2017, 13:26
Avatar de gacsnic75  
Fecha de Ingreso: septiembre-2012
Mensajes: 25
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Multiples insersiones en sqlite desde java

Cita:
Iniciado por ElAthlit Ver Mensaje
Según la página oficial, no lo soporta.

[url]http://www.sqlite.org/cvstrac/wiki?p=UnsupportedSql[/url]

Saludos
Gracias por responder
Esos es lo que me llevo a consutar ya que en algunas pagians encontraba eso como que no era soportado pero en otras si, como mensione en el cliente sqlite3 pude realizar la sentencia sin problema la falla la da en java.
estoy pensando que la falla puede ser que esa sentencia no la soporte Statement pero si PreparedStatement

voy a probar y luego comento

Saludos
  #4 (permalink)  
Antiguo 04/10/2017, 21:10
Avatar de gacsnic75  
Fecha de Ingreso: septiembre-2012
Mensajes: 25
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Multiples insersiones en sqlite desde java

La libreria no acepta inserciones multiples en una solo linea, la solución que encontré [url]http://priede.bf.lu.lv/ftp/pub/DatuBazes/SQLite/SqliteJDBC/about.htm[/url] abria que utilizar addBatch() y executeBatch() de PreparedStatement

Este código no es soportado por la libreria(sqlitejdbc-v056.jar) de sqlite, pero si en la librería (mysql-connector-java-5.0.8-bin.jar)de mysql
Código:
String strSql="REPLACE INTO mytabla VALUES (1,"segundo","tercero"),(2,"otro segundo","otro tercero"),(3,"otro segundo","otro tercero");"
 int rs=-1;
        try {
            rs=cxnBD.createStatement().executeUpdate(strSql);
        } catch (SQLException e) {
            AdminExcepciones.saySystemExcepcion("Error: Conexión incorrecta."+e.getMessage() ,getClass());
        }
Este codigo si es soportado por la libreríalibreria(sqlitejdbc-v056.jar) de sqlite
Código:
       try {
                 PreparedStatement pst=conexion.PreparedStatement("REPLACE INTO mytabla VALUES (?,?,?);"
                 pst.setString(1, "1");
                 pst.setString(2, "segundo");
                 pst.setString(3, "tercero");
                 pst.addBatch();
                 pst.setString(1, "2");
                 pst.setString(2, "otro segundo");
                 pst.setString(3, "otro tercero");
                 pst.addBatch();
                 pst.setString(1, "3");
                 pst.setString(2, "otro segundo");
                 pst.setString(3, "otro tercero");
                 pst.addBatch();
        pst.executeBatch();
       } catch (SQLException e) {
            AdminExcepciones.saySystemExcepcion("Error: Conexión incorrecta."+e.getMessage() ,getClass());
        }
Saludos y gracias
  #5 (permalink)  
Antiguo 06/10/2017, 09:32
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 9 meses
Puntos: 78
Respuesta: Multiples insersiones en sqlite desde java

Gracias por compartirlo

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:32.