0

我想为我的基于 Spring 的 Web 应用程序使用 HSQLdb,并且我想让数据持久化(所以内存中没有了)。根据hsqldb 文档,我可以在连接 URL 中使用变量 - 但文档没有说明如何设置这些变量。

我读过这个问题,并且有一些有趣的策略,例如创建一个侦听器以在上下文加载时设置属性。

这个问题解释了如何获得合适的位置,所以我结合了这两种方法。我尝试使用侦听器设置一个新属性,路径从javax.servlet.context.tempdir(它是 a File)提升,我尝试直接使用该属性。这两种方法都不起作用。

一位赌客评论说,可以user.home通过侦听器进行设置,然后~在 HSQLdb URL 中使用。我没有尝试过,但即使它确实有效,我也觉得有点恶心,因为我重新定义了我可能不想做的事情。我正在寻找“正确”的方式。如何设置 HSQLdb 调用的“Web 应用程序属性”?(或者有合适的吗?)

从文档中:

如果数据库 URL 包含格式为的字符串,${propname} 则字符序列将替换为具有给定名称的系统属性。例如,您可以在 Web 应用程序中使用的数据库的 URL 中使用它,并"propname"在 Web 应用程序属性中定义系统属性。在下面的示例中,字符串${mydbpath}被替换为属性的值,mydbpath

4

1 回答 1

0

通过阅读源代码,System.setProperty(key, value)

踢自己 - 我的问题首先是 HSQLdb 的旧版本,然后它没有卸载 - 重新启动 Tomcat,一切都开始工作了。

于 2013-10-19T07:44:02.833 回答