我在derby中创建了数据库并将其存储在项目文件夹根目录的/ data文件夹中。在应用程序中我使用嵌入式驱动程序。当我从netbeans运行我的应用程序时,我没有错误。当我构建应用程序并运行jar时,我得到数据库未找到错误。这是我用来连接数据库的代码。
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Properties p = new Properties();
p.put("user", "usman");
p.put("password", "******");
DriverManager.getConnection("jdbc:derby:data/SalePurchase", p);
有人能告诉我如何访问数据库文件夹" SalePurchase"当我在罐子里运行它。
答案 0 :(得分:0)
data / SalePurchase是一个相对路径。问题是它与它有什么关系。 manual()表示
通过指定名为derby.system.home的Java系统属性来启动Derby时定义系统目录。如果在启动Derby时未指定系统目录,则当前目录将成为系统目录。
Derby使用derby.system.home属性来确定哪个目录是其系统目录 - 从而确定其系统中的数据库,创建新数据库的位置以及要使用的配置参数。有关此属性的更多信息,请参阅“Derby参考手册”。
如果在启动时指定一个不存在的系统目录,Derby会自动创建这个新目录 - 从而创建一个没有数据库的新系统。