在 tomcat 中作为 GlobalNamingResource 创建的嵌入式 Derby 数据库的存储位置是什么?

What is the storage location of an Embedded Derby database created as a GlobalNamingResource in tomcat?

目前我正在使用通过首次使用 tomcat 8.0 的 server.xml(在 Windows 7 上)指定的 GlobalNamingResource 创建的嵌入式 Derby 数据库。

目前我可以在 Java 代码中使用它,但如果我想使用其他工具(如 Eclipse 数据源资源管理器)访问它,我无法在我的文件系统中的任何地方找到它(在 Windows 7).

我的 server.xml 的相关部分如下所示:

<Resource auth="Container"
    driverClassName="org.apache.derby.jdbc.EmbeddedDriver" 
    maxActive="100" maxIdle="30" maxWait="10000" 
    name="jdbc/myDB" password="" username=""
    type="javax.sql.DataSource" 
    url="jdbc:derby:Databases/myDerbyDB;create=true" />

context.xml 包含这个:

<ResourceLink name="jdbc/myDBLink" global="jdbc/myDB" 
    auth="Container" type="javax.sql.DataSource" /> 

Java代码使用(略微缩短):

DataSource ds = (DataSource) env.lookup("java:/comp/env/jdbc/myDBLink");

这在我的 tomcat 服务器重新启动和重新启动时效果很好。可以使用 Hibernate、EclipseLink、pure JDBC... 访问数据库,并且数据可以很好地保存在其中。文档指出,它应该存储在 CATALINA_HOME 下面的某处,但我在那里找不到任何看起来像 Derby DB 的东西。此外,当我搜索所有磁盘时,我找不到名为 myDerbyDB 的文件夹,也找不到包含相关内容的文件夹 Databases

所以我的问题是:Derby 将我的数据存储在哪里?

根据 Bryan 和 Steve 的评论,我找到了我自己的问题的答案。

对于 Tomcat 托管的 Derby Embedded 数据库,tomcat 运行 在 Windows 下的 Eclipse 中,derby.system.home 似乎指的是 Eclipse 安装文件夹不是工作区。

所以当你的EclipseIDE安装在下面

D:\eclipse

JDBC URL

jdbc:derby:Databases/myDerbyDB

将引用位于

的 Derby 数据库
D:\eclipse\Databases\myDerbyDB

谢谢史蒂夫和布莱恩!