В настоящее время я использую встроенную базу данных Derby, созданную при первом использовании GlobalNamingResource, указанного в файле server.xml tomcat 8.0 (в Windows 7).
В настоящее время я могу использовать его в коде Java, но если я хочу получить к нему доступ с помощью других инструментов, таких как Eclipse Data Source Explorer, я не могу найти его нигде в своих файловых системах (в 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, чистого JDBC и т. д., и данные в нем хорошо сохраняются. В документации указано, что он должен храниться где-то ниже CATALINA_HOME, но там я не могу найти ничего похожего на базу данных Derby. Также, когда я просматриваю все свои Диски, я не могу найти ни папку с именем myDerbyDB
, ни папку Databases
, содержащую что-то связанное.
Итак, мой вопрос: где Дерби хранит мои данные?
$WORKING_DIR\Databases\myDerbyDB
. Если вы используете Tomcat как службу Windows, то$WORKING_DIR
будет зависеть от того, как это задается механизмом службы Windows. У вас могут возникнуть проблемы с его поиском, если служба работает от имени пользователя, который не является вашим обычным логином. - person Steve C   schedule 06.12.2016