Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 拒绝与derby数据库的连接_Java_Netbeans_Derby_Embedded Database - Fatal编程技术网

Java 拒绝与derby数据库的连接

Java 拒绝与derby数据库的连接,java,netbeans,derby,embedded-database,Java,Netbeans,Derby,Embedded Database,我正在学习Java,并试图组合一个简单的应用程序,其中包含一些连接到数据库的jTables,可以进行更新等。为此,我通过Netbeans创建了一个包含一些表的数据库,我理解(并希望)这些表将嵌入最终的可分发应用程序中 我遵循Youtube上的编程知识教程来创建大部分GUI。只要我打开Netbeans上的Services选项卡并手动右键单击我的数据库(testDB)并单击Start Server,Everting就可以了。然后,当我运行以下代码时,我获得了成功的连接: private void j

我正在学习Java,并试图组合一个简单的应用程序,其中包含一些连接到数据库的jTables,可以进行更新等。为此,我通过Netbeans创建了一个包含一些表的数据库,我理解(并希望)这些表将嵌入最终的可分发应用程序中

我遵循Youtube上的编程知识教程来创建大部分GUI。只要我打开Netbeans上的Services选项卡并手动右键单击我的数据库(testDB)并单击Start Server,Everting就可以了。然后,当我运行以下代码时,我获得了成功的连接:

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);
        }        
}                                        
但是,如果我在没有手动单击start server的情况下运行该代码,我会得到以下结果:

java.sql.SQLNonTransientConnectionException: java.net.ConnectException : Error       connecting to server localhost on port 1,527 with message Connection refused.
我已经阅读了apache文档,由于我的经验不足,我没有取得任何进展

我也在这里查看了类似连接问题的答案,但我似乎无法以一种有效的方式将问题联系起来

我的最终目标是拥有一个可以在windows计算机上运行的应用程序,该应用程序的数据库/表都包含可单独编辑的数据库等。我希望最终创建一个驻留在共享驱动器上的数据库,每个人都可以自动连接到该数据库,但这只是目前的发展方向

我的要求是,有人可以帮助我理解我需要在代码中更改什么,以便“启动服务器”自动完成


提前感谢您的回复。

好的,伙计们,我在这里的一个问题中找到了适合我的代码

如果有人想把我和一个原因联系起来,说明为什么这实际上是很好的,我假设嵌入式驱动程序没有通过端口,只是查看项目内部


无论如何,最初这似乎已经解决了

请检查您的服务器设置,即。 -程序中的用户名和密码
并检查您是否启动了Derby服务器,它是否正在监听端口1527

用户名a pwd是正确的,只要我在Netbeans环境中启动服务器,一切都正常-我的问题是如何以编程方式启动它?或者就像我在上面找到的答案一样,我在哪里可以找到嵌入式驱动程序和我正在使用的驱动程序ClientDriver之间的区别呢。我认为差异是显而易见的,但是JVM/Derby如何以不同的方式解释这些差异呢?我认为关于嵌入式Derby和客户机/服务器Derby之间差异的最佳信息来源是Derby手册。从这里开始:
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);
    }
}