向Java DB插入数据失败,出现错误,因为整型列不能接受字符数据
我试图在我的嵌入式Java数据库中设置Dtat,但我不知道我的错误在哪里。我尝试了很多东西,用不同类型的代码来插入数据,但什么都不起作用?使用mysql它可以工作,但这是我使用的第一个嵌入式db向Java DB插入数据失败,出现错误,因为整型列不能接受字符数据,java,database,derby,Java,Database,Derby,我试图在我的嵌入式Java数据库中设置Dtat,但我不知道我的错误在哪里。我尝试了很多东西,用不同类型的代码来插入数据,但什么都不起作用?使用mysql它可以工作,但这是我使用的第一个嵌入式db try { int rows = jTableA.getRowCount(); Class.forName("org.apache.derby.jdbc.ClientDriver"); con = DriverManager.get
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");
}
试试看{
int rows=jTableA.getRowCount();
forName(“org.apache.derby.jdbc.ClientDriver”);
con=DriverManager.getConnection(“jdbc:derby://localhost:1527/meinedb“、”根“、”根123”);
语句st=con.createStatement();
String delete=“从ROOT.ARTIKEL删除”;
执行(删除);
int b=0;
对于(int row=0;row
例外情况:
运行:
2019年11月29日下午1:17:41奥夫特拉格斯。达滕班克斯皮切纳
SCHWERWIEGEND:null
java.sql.SQLSyntaxErrorException:Spalten vom type'INTEGER'dürfen keine Werte des Typs'CHAR'enthalten。
位于org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(未知源)
位于org.apache.derby.client.am.SqlException.getSQLException(未知源)
位于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.MouseRelease(BasicButtonListener.java:252)
位于java.awt.Component.ProcessMouseeEvent(Component.java:6539)
位于javax.swing.JComponent.ProcessMouseeEvent(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.RetargetMouseeEvent(Container.java:4904)
位于java.awt.LightweightDispatcher.ProcessMouseeEvent(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)
在java.awt.EventQueue$3.run(EventQueue.java:709)
在java.awt.EventQueue$3.run(EventQueue.java:703)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
在java.awt.EventQueue$4.run(EventQueue.java:733)
在java.awt.EventQueue$4.run(EventQueue.java:731)
位于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.PumpeEventsforHierarchy(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 Typ'INTEGER'dürfen keine Werte des Typs'CHAR'enthalten。
位于org.apache.derby.client.am.Statement.completeSqlca(未知源)
位于org.apache.derby.client.am.Statement.completeexecuteimimediate(未知源)
位于org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(未知源)
位于org.apache.derby.client.net.NetStatementReply.ReadExecuteMiddate(未知源)
位于org.apache.derby.client.net.StatementReply.ReadExecuteMiddate(未知源)
位于org.apache.derby.client.net.NetStatement.readExecuteImmediate\上(未知源)
在org.apache.derby.client.am