使用 Java 的 Derby 数据库服务器应用程序

Derby database server application using Java

我正在尝试使用 Java 创建 Derby 数据库服务器应用程序。到目前为止,我已经设法创建了连接到 derby 数据库的客户端应用程序,可以从我开始使用 derby cmd 命令的服务器访问该数据库。我需要做的是一个 java 应用程序,它会在 运行 时启动 derby 数据库服务器。到目前为止,我所遇到的就是这个

NetworkServerControl serverControl = new NetworkServerControl(InetAddress.getByName("myhost"),1621);

    serverControl.start();

每次我 运行 这段代码什么都没有发生。我是 Derby 的新手,我真的需要为我的应用程序解决这个问题。请不要提及 Apache Derby 或 Oracle derby 文档,因为我已经浏览过它们但未能理解。一个简单的精确解决方案将不胜感激!

P.S。我已将 derbynet.jar 文件添加到我的项目中。

你只需要使用特殊的连接URL,然后derby就可以自动创建你的数据库:

尝试:

jdbc:derby:${mainDirectory}${dbName};create=true

将${mainDirectory}替换为db的路径,即:C:\derbyDatabase\

raplce ${dbName} 到某个名称,例如:myEmbeddedDatabase

所以它可能是:

connection = DriverManager.getConnection("jdbc:derby:C:/derbyDatabase/myEmbeddedDatabase;create=true");

create=true 的意思是,如果不存在就会创建

还可以在应用程序退出时结束连接,请使用:

DriverManager.getConnection("jdbc:derby:;shutdown=true");

从与您的应用程序相同的 VM (derby 10.11.1.1) 启动 derby 服务器:

下载bin包:http://ftp.ps.pl/pub/apache//db/derby/db-derby-10.11.1.1/db-derby-10.11.1.1-bin.zip

解压,然后转到 db-derby-10.11.1。1-bin\lib

将所有 jar 从 lib 复制到应用程序中的 lib 文件夹,添加到依赖项。

然后在您的应用中执行此操作:

  String[] args = {"start"};
  // for other port;
  //   String[] args = {"start","-p","1088"};

  org.apache.derby.drda.NetworkServerControl.main( args);

如果您想启动单独的进程,请使用:

Runtime.getRuntime().exec(cmdarray)

其中 cmdarray 是您的可执行文件路径和 运行 它的参数。