嵌入式Derby数据库的Java应用
我使用ApacheDerby数据库创建了一个JavaSwing应用程序。我想知道我该如何做以下事情 用户第一次双击应用程序时,会在用户机器上为Derby数据库找到合适的位置,创建数据库并定义所有表、视图等,并加载任何初始数据。 然后,在应用程序的后续运行中,它将能够重新打开数据库并继续使用它。嵌入式Derby数据库的Java应用,java,swing,derby,Java,Swing,Derby,我使用ApacheDerby数据库创建了一个JavaSwing应用程序。我想知道我该如何做以下事情 用户第一次双击应用程序时,会在用户机器上为Derby数据库找到合适的位置,创建数据库并定义所有表、视图等,并加载任何初始数据。 然后,在应用程序的后续运行中,它将能够重新打开数据库并继续使用它。 您可以使用System.getProperty中的user.home属性,该属性将返回用户的主目录作为数据库的主路径。在Windows上,我建议使用{user.home}\AppData\Remote\{
- 您可以使用
中的System.getProperty
属性,该属性将返回用户的主目录作为数据库的主路径。在Windows上,我建议使用user.home
作为基本路径{user.home}\AppData\Remote\{You application name}
- Derby创建一个与数据库同名的目录,您可以检查该目录是否存在。问题是不能保证它包含有效的数据库
- 您可以创建到数据库的正常连接,检查现有表是否存在,并根据需要构建它们。这可以确保,如果由于某种原因,没有创建所有表,您可以在该点进行恢复
NetworkServerControl obj= new NetworkServerControl();
obj.start(null);
使用带有“create=true”的dburl,即
jdbc:derby://localhost:1527/macdb;create=true
上面应该使db目录(macdb)与当前目录上的服务名称相同。您可以使用System.getProperty中的“user.home”来查找用户的主目录。您可以使用它作为路径的基础(我会将应用程序名附加到它后面)。数据库存储在与数据库同名的目录中。如果此目录存在(并约束文件),则数据库应退出。另一种解决方案可能是以正常方式创建与数据库的连接,然后检查是否存在一个或多个表。注释可能更适合作为答案,@Mad。您可能希望查看并以编程方式使用它来设置和填充数据库。