德比模式错误

我正在尝试将数据插入到我的桌面应用程序的Derby嵌入式数据库中。 但是Derby给了我错误的Schema Not found错误 。 我试图通过按用户名创建模式来解决错误,但不能解决我的问题。 我搜索了互联网,但没有一个解决方案解决了我的问题。

package derbyd.ui; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class AddStudent extends javax.swing.JFrame { private void bt_saveActionPerformed(java.awt.event.ActionEvent evt) { String conURL = "jdbc:derby:myDB;create=true"; String user = "SOURABH"; String passwd = "pass"; Connection con = null; Statement st = null; String query; ResultSet rs = null; try { Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); con = DriverManager.getConnection(conURL, user, passwd); st = con.createStatement(); System.out.println("Connection established"); query = "INSERT INTO SOURABH.MyTable VALUES('"+txt_name.getText()+"','"+txt_surname.getText()+"')"; st.executeUpdate(query); System.out.println("Added Successfully"); } catch(Exception e) { System.out.println("Error ->"+e); } } } 

根据Apache Derby的常见问题 ,你会看到:

模式仅由CREATE SCHEMA创建或在该模式中创建对象(表等)(这是隐式模式创建)。

在您的代码中,您需要先创建表,然后像魅力一样工作。

 Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); con = DriverManager.getConnection(conURL, user, passwd); st = con.createStatement(); System.out.println("Connection established"); st.executeUpdate("CREATE TABLE MyTable" + "(name VARCHAR(255), surname varchar(255))"); System.out.println("Table created"); query = "INSERT INTO SOURABH.MyTable VALUES(" + "'" + txt_name.getText() + "','" + txt_surname.getText() + "')"; st.executeUpdate(query); System.out.println("Added Successfully"); 

输出是:

 Connection established Table created Added Successfully 

如果多次运行此语句,则会出现错误,因为该表已存在。 在这里处理这个问题 。

最简单的解决方案是配置数据库属性并使架构与用户名相同,但在资本来源中:架构APP用户应用程序

希望我的回答能有所帮助。