gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:46:21 27 4
gpt4 key购买 nike

我正在尝试使用 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. 以编程方式创建表 - 我怎样才能让它只运行一个每次安装时间
  2. 使用ant构建工具生成表
  3. 还有其他方法吗?

最佳答案

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

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

您提到您创建了带有表的数据库。从应用程序连接时,您得到一个空数据库。
看起来该应用程序无法访问给定路径(工作目录中的 derbysample 目录)先前创建的数据库,并且正在创建一个新数据库。尝试在连接字符串中提供没有 create=true 的完整路径

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

这将强制应用程序使用现有的(以前创建的)数据库,如果找不到相同的数据库则抛出异常。

关于java - Derby 嵌入式数据库创建表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31243961/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com