首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Derby模式错误

Derby模式错误
EN

Stack Overflow用户
提问于 2013-05-11 03:24:00
回答 2查看 3.4K关注 0票数 0

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

代码语言:javascript
复制
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);
    }
}                                       


}
EN

回答 2

Stack Overflow用户

发布于 2013-05-11 05:08:19

根据Apache的常见问题,您将看到:

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

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

代码语言:javascript
复制
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");

产出如下:

代码语言:javascript
复制
Connection established
Table created
Added Successfully

如果您多次运行此语句,您将得到一个错误,因为该表已经存在。为了解决这个问题,这里

票数 2
EN

Stack Overflow用户

发布于 2017-08-26 23:10:04

最简单的解决方案是配置数据库属性,并使模式与用户名相同,但在大写列表(例如: schema APP用户应用程序)中。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16493422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档