以编程方式设置derby.system.home

需要将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都在该数据/目录中。 并且derby日志文件将在logs /中! 我似乎无法弄清楚这一点。 有人帮吗? 有没有办法以编程方式设置这些属性(因为它是嵌入的)?

文档(Derby开发人员指南:设置Derby属性)建议类似于:

 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);