Database Error Connecting to Derby Network Server

I am having problems initializing my javadb network server and making a connection to it. This is a JavaFX program.

This is what I have so far:

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); } 

I will always catch the second exception.

If I right click on the javadb service in netbeans and select connect, everything works smoothly. [Actually, it would be nice to know which java code or program is running in the background when I select this]

In my list of projects under libraries I see derby.jar, derbyclient.jar and derbynet.jar

What am I doing wrong? Please, help!

Here is the error I get

 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) 
+4
source share
2 answers

The JDBC URL seems to be trying to connect to the Derby server and the embedded instance. If you are trying to connect to a server instance, here are some considerations:

  • You started the server yourself, does mydb already exist?
  • If not, you passed the correct parameters to create (for example, create = true) example: jdbc:derby://localhost:1527/dbname;create=true
  • If mydb exists, are you pointing the server to the correct location?
    • Also, depending on what was used to launch the derby (for example, the built-in vs network driver), the default databases are also placed. You can read it here .

Basically, the exception you get is that Derby says it cannot find your database - this is basically a path problem.

+7
source

If you are using netbeans, you should fix this by going to the connection properties and adding the property. In the property section, enter create and value of type true.

+2
source

Source: https://habr.com/ru/post/1488798/


All Articles