Java Derby架构错误
我正在尝试将数据插入桌面应用程序的Derby嵌入式数据库。但是Derby给了我Schema Not found error的错误。 我试图通过按照用户名创建模式来解决这个错误,但并没有解决我的问题。我在网上搜索,但并没有一个解决我的问题Java Derby架构错误,java,database,schema,derby,Java,Database,Schema,Derby,我正在尝试将数据插入桌面应用程序的Derby嵌入式数据库。但是Derby给了我Schema Not found error的错误。 我试图通过按照用户名创建模式来解决这个错误,但并没有解决我的问题。我在网上搜索,但并没有一个解决我的问题 package derbyd.ui; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement
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
如果多次运行此语句,将出现错误,因为该表已存在。为了解决这个问题,根据ApacheDerby的介绍,您将看到:
模式仅由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
如果多次运行此语句,将出现错误,因为该表已存在。要解决这个问题,.最简单的解决方案是配置数据库属性,并使模式与用户名相同,但使用大写字母 前任: 模式应用程序 用户应用程序
希望我的回答能有所帮助。最简单的解决方案是配置数据库属性,使模式与用户名相同,但大写字母 前任: 模式应用程序 用户应用程序 希望我的回答能有所帮助