Вставка данных в Java DB завершается неудачно с ошибкой, поскольку столбец типа integer не может принимать символьные данные - PullRequest
1 голос
/ 29 марта 2019

Я пытаюсь установить Dtat во встроенной Java DB, и я не знаю, где моя ошибка. Я пробовал так много вещей типов кода, чтобы вставить данные, но ничего не работает? С MySQL это работает, но это первый встроенный DB, работающий с

try {
            int rows = jTableA.getRowCount();
            Class.forName("org.apache.derby.jdbc.ClientDriver");
            con = DriverManager.getConnection("jdbc:derby://localhost:1527/meinedb", "root", "root123");
            Statement st = con.createStatement();
            String delete = "DELETE FROM ROOT.ARTIKEL";
            st.execute(delete);

            int b = 0;
            for (int row = 0; row < rows; row++) {

                Integer artikelnummer = (Integer) jTableA.getValueAt(row, 0);
                String beschreibung = (String) jTableA.getValueAt(row, 1);
                String bestellenbei = (String) jTableA.getValueAt(row, 2);
                Integer menge = (Integer) jTableA.getValueAt(row, 3);
                String bestellenbis = (String) jTableA.getValueAt(row, 4);
                Boolean bestellt = (Boolean) jTableA.getValueAt(row, 5);
                if (bestellt == true) {
                    b = 1;
                }
                if (bestellt == false) {
                    b = 0;
                }
               String sql ="INSERT INTO ROOT.ARTIKEL (ARTIKELNUMMER, BESCHREIBUNG, BESTELLENBEI, "
                        + "ARTIKELMENGE, BESTELLENBIS, BESTELLT)"
                        + " VALUES ('"+artikelnummer+"', '"+beschreibung+"', '"+bestellenbei+"', '"+menge+"',"
                        + " '"+bestellenbis+"', '"+bestellt+"')" ;
               st.execute(sql);


            }

            JOptionPane.showMessageDialog(null, "Artikel erfolgreich gespeichert");

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Speichern Fehlgeschlagen");
        }

исключение:

пробег: 29 марта, 2019 13:17:41 Auftrags. Datenbank SpeichernA SCHWERWIEGEND: ноль java.sql.SQLSyntaxErrorException: Spalten vom Typ 'INTEGER' dürfen keine Werte des Typs 'CHAR' enthalten. в org.apache.derby.client.am.SQLExceptionFactory40.getSQLException (неизвестный источник) в org.apache.derby.client.am.SqlException.getSQLException (Неизвестный источник) at org.apache.derby.client.am.Statement.execute (Неизвестный источник) в Auftrags.Datenbank.SpeichernA (Datenbank.java:135) в Auftrags.MainWindow.jBsaveOrderActionPerformed (MainWindow.java:1567) на Auftrags.MainWindow.access $ 4800 (MainWindow.java:19) в Auftrags.MainWindow $ 49.actionPerformed (MainWindow.java:857) в javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java:2022) в javax.swing.AbstractButton $ Handler.actionPerformed (AbstractButton.java:2348) в javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:402) в javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java:259) в javax.swing.plaf.basic.BasicButtonListener.mouseReleased (BasicButtonListener.java:252) в java.awt.Component.processMouseEvent (Component.java:6539) в javax.swing.JComponent.processMouseEvent (JComponent.java:3324) в java.awt.Component.processEvent (Component.java:6304) в java.awt.Container.processEvent (Container.java:2239) в java.awt.Component.dispatchEventImpl (Component.java:4889) в java.awt.Container.dispatchEventImpl (Container.java:2297) в java.awt.Component.dispatchEvent (Component.java:4711) в java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:4904) в java.awt.LightweightDispatcher.processMouseEvent (Container.java:4535) в java.awt.LightweightDispatcher.dispatchEvent (Container.java:4476) в java.awt.Container.dispatchEventImpl (Container.java:2283) в java.awt.Window.dispatchEventImpl (Window.java:2746) в java.awt.Component.dispatchEvent (Component.java:4711) в java.awt.EventQueue.dispatchEventImpl (EventQueue.java:760) на 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 (собственный метод) в java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (ProtectionDomain.java:74) в java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (ProtectionDomain.java:84) at java.awt.EventQueue $ 4.run (EventQueue.java:733) at java.awt.EventQueue $ 4.run (EventQueue.java:731) at java.security.AccessController.doPrivileged (собственный метод) в java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (ProtectionDomain.java:74) в java.awt.EventQueue.dispatchEvent (EventQueue.java:730) в java.awt.EventDispatchThread.pumpOneEventForFilters (EventDispatchThread.java:205) в java.awt.EventDispatchThread.pumpEventsForFilter (EventDispatchThread.java:116) в java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:105) в java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:101) в java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:93) в java.awt.EventDispatchThread.run (EventDispatchThread.java:82) Вызывается: org.apache.derby.client.am.SqlException: Spalten vom Тип 'INTEGER' dürfen keine Werte des Typs 'CHAR' энтальтен. at org.apache.derby.client.am.Statement.completeSqlca (неизвестный источник) at org.apache.derby.client.am.Statement.completeExecuteImmediate (неизвестный источник) at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply (неизвестный источник)at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate (неизвестный источник) at org.apache.derby.client.net.StatementReply.readExecuteImmediate (неизвестный источник) на org.apache.derby.client.net.NetStatement.readExecuteImmediate_ (неизвестный источник) at org.apache.derby.client.am.Statement.readExecuteImmediate (неизвестный источник) в org.apache.derby.client.am.Statement.flowExecute (Неизвестный источник) в org.apache.derby.client.am.Statement.executeX (неизвестный источник) ... еще 41

...