我正在使用一个使用JavaDB的桌面应用程序。 我使用的是NetBeans 6.8和JDK 6 Update 20
我创建了我需要的数据库,并通过我的应用程序使用ClientDriver
:
String driver = "org.apache.derby.jdbc.ClientDriver";
String connectionURL = "jdbc:derby://localhost:1527/myDB;create=true;user=user;password=pass";
try {
Class.forName(driver);
} catch (java.lang.ClassNotFoundException e) {
e.printStackTrace();
}
try {
schedoDBConnection = DriverManager.getConnection(connectionURL);
} catch (Exception e) {
e.printStackTrace();
}
这很好用。但在这种情况下,数据库的服务来自NetBeans。如果我将我的应用程序移动到另一台PC,我将无法访问我的数据库。如何将JavaDB集成到我的应用程序中?
答案 0 :(得分:3)
如果我将我的应用程序移动到另一台PC,我将无法访问我的数据库。如何将JavaDB集成到我的应用程序中?
NetBeans以Network Server模式启动Derby,Derby在另一个JVM中运行。如果要将数据库嵌入到应用程序中,则需要在应用程序中的embedded mode中启动Derby。为此,请使用 EmbeddedDriver
提供的derby.jar
。
/*
If you are running on JDK 6 or higher, you do not
need to invoke Class.forName(). In that environment, the
EmbeddedDriver loads automatically.
*/
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection conn = DriverManager.getConnection("jdbc:derby:sample");
默认情况下,将从工作目录创建/加载数据库。如果您想要更多控制,建议的方法是设置derby.system.home
系统属性。看看Using Java DB in Desktop Applications。
答案 1 :(得分:0)
数据库不是来自Netbeans;它内置于JDK本身。
客户端需要为他们提供JDBC驱动程序JAR。如果您将数据库作为服务器运行,则您的用户必须启动服务器。也许这就是Netbeans为你做的那件必须被替换的部分。
答案 2 :(得分:0)
创建db derby并使用localhost连接后,需要在文件derby.properties中添加一行,找到你的目录数据库
derby.drda.host=10.0.0.40 //example IPAddress
保存并转到netbeans中的连接并将localhost更改为你的ipaddress