我正在学习Java并尝试组合一个简单的应用程序,其中包含一些连接到数据库的jTables,可以更新等。为此,我创建了一个数据库,其中有几个表通过Netbeans,我理解(并希望)嵌入在最终可分发的应用程序中。
我正在关注Youtube上的编程知识教程来创建大部分GUI。只要我打开Netbeans上的“服务”选项卡并手动右键单击我的数据库(testDB)并单击“启动服务器”,外部就可以了。然后,当我运行以下代码时,我获得了成功的连接:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try{
//Register JDBC driver
Class.forName("org.apache.derby.jdbc.ClientDriver");
//Open a connection
String DB_URL = "jdbc:derby://localhost:1527/testDB";
String u_name = jTextField1.getText();
String p_word = jPasswordField1.getText();
conn = DriverManager.getConnection("jdbc:derby://localhost:1527/testDB",u_name,p_word);
JOptionPane.showMessageDialog(null,"Details Correct - Connection established");
Close_me();
Open_Table_GUI(u_name,p_word);
}
catch(ClassNotFoundException | SQLException e){
System.out.println(e);
}
}
但是如果我在没有手动点击启动服务器的情况下运行该代码,我会得到以下结果:
java.sql.SQLNonTransientConnectionException: java.net.ConnectException : Error connecting to server localhost on port 1,527 with message Connection refused.
我已经阅读了apache文档,由于我的经验不足,我无法到达任何地方。
我也在这里检查了类似连接问题的答案,但我似乎无法以一种有效的方式将问题联系起来。
我的最终目标是拥有一个可以分发的应用程序,以便在Windows机器上运行,这些应用程序将数据库/表格全部包含在内,可以单独编辑。我希望最终创建一个驻留在共享驱动器上的数据库个人可以自动连接 - 但现在就是这样。
我的要求是,有人可以帮助我了解我需要在代码中更改的内容,以便自动完成“启动服务器”。
提前感谢您回复。
答案 0 :(得分:0)
好的伙伴,所以我发现代码似乎对我有用LMS
private void setup(){
try{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
connection=DriverManager.getConnection("jdbc:derby:sheet;create=true","test","1234");
statement=connection.createStatement();
}
catch(ClassNotFoundException cnf){
System.out.println("class error");
}
catch(SQLException se){
System.out.println(se);
}
}
如果有人愿意将我联系到为什么这实际上工作得很好的原因,我假设嵌入式驱动程序没有通过端口而只是查看项目?
无论如何,最初这似乎已经解决了!!
答案 1 :(得分:0)
请检查您的服务器设置,即 - 程序中的-username和pwd 并检查你是否启动了Derby服务器并且是否在端口1527上侦听?