我正在创建使用derby嵌入式数据库的桌面应用程序,虽然当我使用derby作为客户端数据库然后它工作正常,但我想用我的桌面应用程序嵌入这个数据库然后它抛出错误 下面是帮助代码,请查看
public class TaxInvoice extends javax.swing.JFrame {
//String connectionurl = "jdbc:derby://localhost:1527/embdIDA1db";
String connectionurl = "jdbc:derby:embdIDA1db;create=true;user=root;password=root";
Connection conn = null;
ResultSet rs;
String po_no = null;
/**
* Creates new form TaxInvoice
*/
public TaxInvoice() {
initComponents();
String dt = sdf.format(cal.getTime());
cur_date.setText(dt);
try{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
conn = DriverManager.getConnection(connectionurl,"root","root");
String sql="Select * from IMPORTED_CSV";
Statement s = conn.createStatement();
s.executeQuery(sql);
rs = s.getResultSet();
while(rs.next()){
po_no = rs.getString("PO_NO");
jTextField1.setText(po_no);
}
rs.close();
s.close();
}
catch(Exception e){
System.out.println("Error is"+e);
}
}
,错误是
Error isjava.sql.SQLSyntaxErrorException: Schema 'ROOT' does not exist
答案 0 :(得分:1)
您的connectionURl应为jdbc:derby://localhost:1527/embdIDA1db
,这似乎在您的代码中被注释掉了。
您正在明确传递用户名和密码,因此无需将其包含在网址中。
DriverManager.getConnection(connectionurl,"root","root");
答案 1 :(得分:0)
请你试试这个。
private static String dbURL = "jdbc:derby://localhost:1527/embdIDA1db;create=true;user=root;password=root";
答案 2 :(得分:0)
为了完成这项工作,
使用默认模式进行德比
即用户="应用"密码=""
例如:
try
{
// Configures and loads Database
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:derby:myDB;create=true", "APP" , "");
} catch (Exception ex)
{
System.out.println(ex);
}
或者您可以使用
创建架构CREATE SCHEMA <schema name>