我正在尝试使用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嵌入式数据库。什么是最好的解决方案?
- 以程序方式创建表-如何使其仅运行一次每次安装的时间
- 使用ant构建工具生成表
- 还有其他办法吗
我假设您想要的是在安装期间创建一个包含特定表的数据库,然后使用相同的表。
Derby是存储在单个目录中的轻量级数据库。已经说过,创建表就像执行createtablesql查询一样简单。安装时运行此程序
连接字符串中的create=true;
表示如果(在给定路径上(找不到匹配的数据库,则创建一个空数据库。这只能在安装时进行。
您提到您使用表创建了数据库。从应用程序连接时,得到一个空数据库
看起来应用程序无法访问给定路径上以前创建的数据库(工作目录下的derbysample目录(,并且正在创建新数据库。尝试在连接字符串中给出不带create=true的完整路径
private静态字符串dbURL="jdbc:derby:d:\\somepath\\derbysample;user=root;password=root";
这将强制应用程序使用现有(以前创建的(数据库,并在找不到该数据库时引发异常。