德比架构错误(Derby Schema Error)

2019-09-02 14:16发布

我想为我的桌面应用程序将数据插入Derby嵌入式数据库 。 但德比是给我的模式未找到错误的错误。 我曾尝试通过创建模式为每名来解决错误,但并没有解决我的问题。 我搜索互联网,但没有给出解决方案的解决我的问题。

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);
    }
}                                       


}

Answer 1:

按照常见问题的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

如果你运行该语句不止一次,你会因为表已经存在得到一个错误。 为了解决这个问题, 在这里 。



Answer 2:

最简单的解决办法是配置你的数据库属性和进行模式相同的用户名,但在资本窝前:架构APP用户的应用程序

希望我的回答可以帮助您。



文章来源: Derby Schema Error