Derby嵌入式数据库创建表结构

时间:2015-07-06 10:51:13

标签: java swing netbeans derby

我正在尝试使用netbeans IDE创建一个包含嵌入式数据库的swing应用程序。首先在netbeans服务选项卡中创建了一个数据库,并使用嵌入式驱动程序进行连接。然后我在那里创建了所有的表和关系。

在swing应用程序中我连接了这样的嵌入式数据库

private static String dbURL = "jdbc:derby:derbysample;create=true;user=root;password=root";

Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
            //Get a connection
            conn = DriverManager.getConnection(dbURL);

这创建了数据库,我可以连接。但我不创建我创建的表。这是独立的应用程序。因此,对于不同的机器,它需要创建数据库和表。有很多解决方案吗?

  • 以编程方式创建表[添加另一个java文件以创建表和关系]
  • 获取数据库架构并构建它。

我的问题是“在独立应用程序中有没有简单的方法将数据库结构添加到嵌入式数据库?

问题摘要是: - 使用具有大量表和关系的derby嵌入式数据库。什么是最好的解决方案?

  1. 创建表格Programaticallyly - 我怎样才能使它只运行一个 每次安装的时间
  2. 使用ant构建工具生成表格
  3. 还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

我假设你想要的是在安装过程中创建一个包含特定表的数据库,然后再使用它。

Derby是存储在单个目录中的轻量级数据库。说过创建表就像执行create table sql查询一样简单。安装时运行此命令 连接字符串中的create=true;表示如果找不到匹配的数据库(在给定路径上),则创建一个空数据库。这应该只在安装时完成。

您提到您使用表创建了数据库。从应用程序连接时,您获得了一个空数据库 看起来应用程序无法在给定路径(工作目录中的 derbysample 目录)访问以前创建的数据库,并且正在创建新数据库。尝试在连接字符串

中提供不带create = true的完整路径
  

private static String dbURL =“jdbc:derby:d:\\ somepath \\ derbysample; user = root; password = root”;

这将强制应用程序使用现有(以前创建的)数据库,并在未找到相同内容时抛出异常。