【问题标题】:Derby Schema Error德比模式错误
【发布时间】:2013-05-05 19:07:40
【问题描述】:

我正在尝试为我的桌面应用程序将数据插入 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);
    }
}                                       


}

【问题讨论】:

    标签: java database schema derby


    【解决方案1】:

    最简单的解决方案是配置数据库属性并使架构与用户名相同但大写 前任: 架构APP 用户应用

    希望我的回答能帮到你。

    【讨论】:

      【解决方案2】:

      根据 Apache Derby 的Frequently Asked Questions,您会看到:

      架构仅由 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
      

      如果您多次运行此语句,则会收到错误消息,因为该表已存在。为了解决这个问题,here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-18
        • 1970-01-01
        • 2010-10-25
        相关资源
        最近更新 更多