需要将JavaDB(derby)db文件的数据库和日志文件移动到部署目录中。数据库正在应用程序启动目录中工作,因为JavaDB创建了一个具有数据库名称的文件夹(在我的例子中是mydb),但我想将该目录移动到名为data / creating data / mydb的子目录中。我可以使用connect调用来执行此操作:
DriverManager.getConnection("jdbc:derby:data/mydb;create=false");
这是有效的。但我想以编程方式明确设置
的值 derby.system.home =数据/
derby.stream.error.file =日志/的derby.log
所以我能做到:
DriverManager.getConnection("jdbc:derby:mydb;create=false");
并且所有dbs都在该data / dir中。 derby日志文件将在logs /中!我似乎无法弄清楚这一点。有人帮吗?有没有办法以编程方式设置这些属性(因为它是嵌入的)?
答案 0 :(得分:6)
documentation (Derby developers guide: Setting Derby properties)建议如下:
Properties p = System.getProperties();
p.setProperty("derby.system.home", "C:\databases\sample");
我也见过
/* setting an attribute in a Properties object */
Properties myProps = new Properties();
myProps.put("create", "true");
Connection conn = DriverManager.getConnection("jdbc:derby:sampleDB", myProps);