当前位置: 首页 > 知识库问答 >
问题:

连接到Derby网络服务器时出现数据库未找到错误

郎鸿雪
2023-03-14

我在初始化javadb网络服务器和设置与它的连接时遇到问题。这是一个JavaFX程序。

这就是我目前的情况:

try {
        Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
        javadbserver = new NetworkServerControl();
        javadbserver.start(null);
    } catch (ClassNotFoundException e) {
        Logger.getLogger(MainGuiController.class.getName()).log(Level.SEVERE, null, ex);
        System.out.println("Where is your JavaDB embedded Driver?");
        return;
    }

    String dbName = "mydb";
    String dbUser = "auser";
    String dbPass = "password";

    PreparedStatement prepstmt;

    try {
        this.conn = DriverManager.getConnection("jdbc:derby://localhost:1527/mydb;user=auser;password=password");
        System.out.println("Went through!");
    } catch (SQLException ex) {
        Logger.getLogger(MainGuiController.class.getName()).log(Level.SEVERE, null, ex);
    }

我总是抓住第二个例外。

如果我右键单击netbeans中的javadb服务并选择connect,一切都会顺利运行。[实际上,当我选择java时,最好能知道java在后台运行什么代码或程序]

在库下的项目列表中,我看到derby.jar、derbyclient.jar和derbynet.jar

我做错了什么?请帮忙!

这是我得到的错误

java.sql.SQLNonTransientConnectionException: The connection was refused because the database mydb was not found.
    at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
    at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
    at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:579)
    at java.sql.DriverManager.getConnection(DriverManager.java:243)
    at mydb.MainGuiController.initialize(MainGuiController.java:105)
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2152)
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2028)
    at mydb.mydb.start(mydb.java:37)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
    at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:215)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:176)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:176)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
    at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73)
    at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.derby.client.am.DisconnectException: The connection was refused because the database mydb was not found.
    at org.apache.derby.client.net.NetConnectionReply.parseRDBNFNRM(Unknown Source)
    at org.apache.derby.client.net.NetConnectionReply.parseAccessRdbError(Unknown Source)
    at org.apache.derby.client.net.NetConnectionReply.parseACCRDBreply(Unknown Source)
    at org.apache.derby.client.net.NetConnectionReply.readAccessDatabase(Unknown Source)
    at org.apache.derby.client.net.NetConnection.readSecurityCheckAndAccessRdb(Unknown Source)
    at org.apache.derby.client.net.NetConnection.flowSecurityCheckAndAccessRdb(Unknown Source)
    at org.apache.derby.client.net.NetConnection.flowUSRIDPWDconnect(Unknown Source)
    at org.apache.derby.client.net.NetConnection.flowConnect(Unknown Source)
    at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
    at org.apache.derby.client.net.NetConnection40.<init>(Unknown Source)
    at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(Unknown Source)

共有2个答案

花永昌
2023-03-14

如果您使用的是netbeans,那么应该通过进入连接属性并添加属性来解决这个问题。在“属性”下键入“创建”,在“值”下键入“真”。

谭灿
2023-03-14

通过JDBC url,看起来您正试图连接到Derby服务器,而不是嵌入式实例。如果试图连接到服务器实例,请注意以下几点:

  • 你自己启动服务器了吗,mydb已经存在了吗?
  • 如果没有,你是否传入了正确的参数来创建(例如:创建=true)例如:jdbc:derby://localhost:1527/dbname;创建=true
  • 如果mydb确实存在,您是否将服务器指向正确的位置?
    • 此外,根据用于启动derby的内容(例如嵌入式与网络驱动程序),默认数据库位置也不同。你可以在这里读到它

    基本上你得到的例外是Derby说它找不到你的数据库——这基本上是一个路径问题。

 类似资料:
  • 我正在尝试调用一个出站的外部网络服务,即https。它在我当地的MuleStudion环境中工作正常。但是当我部署进行测试时。我收到异常 异常堆栈为: 信任Anchors参数必须为非空(java.security.Invalid算法参数异常)java.security.cert.PKIXP参数:200(null) 意外错误:java.security.Invalid算法参数异常:信任锚参数必须为非

  • 初始化-iMac:桌面初始化$openssl s_client-connect gateway.sandbox.push.apple.com:2195-cert pushchatcert.pem-key pushchatkey.pem 终端响应: CONNECTED(00000003)深度=1/c=US/O=Entrust,INC./OU=www.Entrust.net/RPA是通过引用合并的/O

  • PSQL:无法连接到服务器:连接被拒绝服务器是否在主机“”上运行并接受端口5432上的TCP/IP连接? Postgres安装版本为9.4。 主机操作系统:Ubuntu 15.04 客户端操作系统:Centos 7 我已经尝试了以下方法,但问题仍未解决: null

  • 我是php的初学者,对于一个项目,我想把我和数据库连接起来,但问题是: 我需要4个变量: 当我这样做时: 有两个错误: 警告:mysqli::mysqli():php_network_getaddress:getaddrinfo失败:第21行/home/ubuntu/workspace/index.php中的名称或服务未知 而且 警告:mysqli::mysqli():(HY000/2002):p

  • 查询数据库时出错。原因:org.springframework.JDBC.canNotgetJDBCConnectionException:未能获得JDBC连接;嵌套异常是java.sql.sqlexception:对文件“d:companydbprodatafile.fdb”进行“createFile(open)”操作时发生I/O错误;试图打开文件时出错;[SQLSTATE:08001,ISC错

  • 所以我现在正在编写一个web应用程序,我需要数据库,所以我决定使用mongodb和Mongoose。到目前为止,我在localhost上测试了所有的内容,它都起作用了,但我想把数据移到服务器上。我听说过Atlas,自己注册并“上传”了数据。 现在我想通过Node.js应用程序连接到集群。 我在连接您的应用程序点得到了mongodb Atlas站点的字符串 然后我交换了我的密码。 这也没用。 这是错