Author Topic: Multiples insersiones en sqlite desde java  (Read 78 times)

gacs

  • Full Member
  • ***
  • Posts: 127
  • Karma: 0
    • View Profile
Multiples insersiones en sqlite desde java
« on: Septiembre 29, 2017, 03:20:04 am »
buena he intentado hacer multiples insersiones en base de datos de sqlite con java utilizando la senticia sql
Code: [Select]
"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
Quote
near ",": syntax error

el codigo en java que utilizo es

Code: [Select]
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","

Code: [Select]
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,

favor alguna idea de que debo buscar para solucionar el problema, de antemano gracias
Saludos
gacs

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5406
  • Karma: 11
    • View Profile
    • Apuntes de programación
Re: Multiples insersiones en sqlite desde java
« Reply #1 on: Septiembre 30, 2017, 12:10:26 am »
¿Y la excepción/error que da cual es?

Saludos.

gacs

  • Full Member
  • ***
  • Posts: 127
  • Karma: 0
    • View Profile
Re: Multiples insersiones en sqlite desde java
« Reply #2 on: Septiembre 30, 2017, 03:19:01 am »
gracias por contestar la expresion de el error es
 
Quote
near ",": syntax error

he buscado pero no encuentro anda aun, por algunos ejemplos que encontrado lo hacen con PreparedStatement  no he probado aun yo lo estoy haciendo con createStatement().executeUpdate() talves sea por ahi voy a probar y comento

saludos
Saludos
gacs

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5406
  • Karma: 11
    • View Profile
    • Apuntes de programación
Re: Multiples insersiones en sqlite desde java
« Reply #3 on: Octubre 03, 2017, 05:41:16 pm »
Hola:

No sé que es segundo, tercero, .... si es texto, debería ir entre comillas simples 'segundo', 'tercero' ....

y el problema puede estar en el espacio que pones en la segunda inserción otro segundo, otro tercero, .... prueba a entrecomillarlo, o a poner un texto sin espacios.

Saludos.

gacs

  • Full Member
  • ***
  • Posts: 127
  • Karma: 0
    • View Profile
Re: Multiples insersiones en sqlite desde java
« Reply #4 on: Octubre 05, 2017, 11:13:14 am »
La libreria no acepta inserciones multiples en una solo linea, la solución que encontré http://priede.bf.lu.lv/ftp/pub/DatuBazes/SQLite/SqliteJDBC/about.htm abria que utilizar addBatch() y executeBatch() de  PreparedStatement

Los datos que puse en el primer post pues no son los reales , los reales eran números y no había espacio entre la información osea que (otro segundo) podía ser un 22.

 
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
Code: [Select]
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
 
Code: [Select]
       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
Saludos
gacs

 

ey