Java - problema con consulta en java

 
Vista:

problema con consulta en java

Publicado por rodrigo (2 intervenciones) el 14/01/2019 21:12:12
Hola foro,

necesito ayuda con un código que estoy haciendo en java y mysql, la cual consiste en la lectura de un archivo txt la cual contiene encabezado y datos para insertar en una tabla en la base de datos. el problema surge cuando intenta cargar la fecha en una de las columnas de la tabla, la cual en el archivo viene con formato dd-mm-yy, pero en la tabla tiene como formato de fecha yy-mm-dd. estoy ocupando STR_to_date pero no me resulta. su ayuda por favor.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public void cargaArchivo()
    {
    JFileChooser chooser = new JFileChooser();
    chooser.showOpenDialog(null);
    File f = chooser.getSelectedFile();
    try
    {
    BufferedReader br = new BufferedReader (new FileReader(f));
    String firstLine = br.readLine().trim();
    String [] columsName = firstLine.split(";");
    DefaultTableModel model = (DefaultTableModel)jtablaRepVentas.getModel();
    model.setColumnIdentifiers(columsName);
 
    Object[] tableLines = br.lines().toArray();
 
    for(int i = 0; i < tableLines.length; i++)
       {
        String line = tableLines[i].toString().trim();
        String[] dataRow = line.split(";");
        model.addRow(dataRow);
       }
    Conectar conn = new Conectar();
 
    conn.getConnection();
    Statement s = null;
    try {
        s = conn.sentencia;
    for(int i = 0; i < jtablaRepVentas.getRowCount(); i++)
    {
 
        String fecha_trx = jtablaRepVentas.getValueAt(i, 0).toString();
        String entidad = jtablaRepVentas.getValueAt(i, 1).toString();
        String estado = jtablaRepVentas.getValueAt(i, 2).toString();
        String contrato = jtablaRepVentas.getValueAt(i, 3).toString();
        String tipo_trx = jtablaRepVentas.getValueAt(i, 4).toString();
        String monto_trx = jtablaRepVentas.getValueAt(i, 5).toString();
        String cantidad = jtablaRepVentas.getValueAt(i, 6).toString();
        String idliquidacion = jtablaRepVentas.getValueAt(i, 7).toString();
        String fechaliqu = jtablaRepVentas.getValueAt(i, 8).toString();
        String codigo_error = jtablaRepVentas.getValueAt(i, 9).toString();
        String fecha_liquidacion = jtablaRepVentas.getValueAt(i, 10).toString();
        String codigotipohora = jtablaRepVentas.getValueAt(i, 11).toString();
        String ppt = jtablaRepVentas.getValueAt(i, 12).toString();
 
        String sql ="INSERT INTO load_repventas_data (fecha_trx,ENTIDAD,ESTADO,CONTRATO,TIPO_TRX,MONTO_TRX,CANTIDAD,IDLIQUIDACION,FECHALIQU,CODIGO_ERROR,fecha_liquidacion,CODIGOTIPOHORA,PPT) VALUES (STR_TO_DATE('"+fecha_trx+"','%Y-%m-%d')), '" + entidad + "', '" + estado+"','"+ contrato+"','"+tipo_trx+"','"+ monto_trx+"','"+cantidad+"','"+idliquidacion+"',(STR_TO_DATE('"+fechaliqu+"','%Y-%m-%d')),'"+codigo_error+"', (STR_TO_DATE('"+fecha_liquidacion+"','%Y-%m-%d')),'"+codigotipohora+"','"+ppt+"'))";
 
 
            s.executeUpdate(sql);
        }
    }
    catch (SQLException ex) {
            Logger.getLogger(CargarDatos.class.getName()).log(Level.SEVERE, null, ex);
        }
 
    }
catch (IOException ex)
    {
       ex.printStackTrace();
 
    }


El error que obtengo es el siguiente

GRAVE: null
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1', 'LIQU','505','19','0','14637','LQ20190110001.1',(STR_TO_DATE('20190110','%Y' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1816)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1730)
at cl.aft.gui.CargarDatos.cargaArchivo(CargarDatos.java:89)
at cl.aft.gui.CargarDatos.btnCargarDatosActionPerformed(CargarDatos.java:256)
at cl.aft.gui.CargarDatos.access$000(CargarDatos.java:27)
at cl.aft.gui.CargarDatos$1.actionPerformed(CargarDatos.java:156)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problema con consulta en java

Publicado por rodrigo (2 intervenciones) el 15/01/2019 03:49:34
logre que funcionara el codigo, pero solo agrega 2245 filas a la tabla, luego de eso me sale el siguiente error

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at cl.aft.gui.CargarDatos.cargaArchivo(CargarDatos.java:84)
at cl.aft.gui.CargarDatos.btnCargarDatosActionPerformed(CargarDatos.java:259)
at cl.aft.gui.CargarDatos.access$000(CargarDatos.java:28)
at cl.aft.gui.CargarDatos$1.actionPerformed(CargarDatos.java:159)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


ayuda por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar