Файл базы данных, к которому я хочу подключиться, находится по адресу:
\ ProjectName \ SRC \ ресурсы \ базы данных \ database.db
Если я упаковываю свое приложение в банку, оно находится по адресу:
\ ProjectName \ цель \ ProjectName-0.0.1-SNAPSHOT-банку-с-dependencies.jar \ ресурсы \ базы данных \ database.db
Эта папка находится в
C: \ Users \ Имя пользователя \ Documents \ JavaProjects \
Мой подход в коде:
private static final String CONNECTION = "jdbc:sqlite:" + System.getProperty("user.dir") + "\\ProjectName-0.0.1-SNAPSHOT-jar-with-dependencies.jar\\resources\\database\\database.db";
try(final Connection connection = DriverManager.getConnection(CONNECTION)) {
final Statement statement = connection.createStatement();
statement.setQueryTimeout(10);
statement.executeUpdate(stmt);
connection.close();
} catch (SQLException e) {
//...
}
Если дважды щелкнуть файл ProjectName-0.0.1-SNAPSHOT-jar-with-dependencies.jar
, я получу:
путь к
C: \ Users \ Имя пользователя \ Documents \ JavaProjects \ ProjectName \ цель \ Projectname-0.0.1-SNAPSHOT-банку-с-dependencies.jar \ Resources \ базы данных \ database.db
не существует.
Если я изменю строку подключения на:
private static final String CONNECTION =
"JDBC: SQLite :: ресурс \ ресурсы \ базы данных \ database.db";
тогда я получаю:
путь к
C: \ Users \ Имя пользователя \ Documents \ JavaProjects \ ProjectName \ цель: ресурс
не существует
Я использую maven со следующими зависимостями:
<dependencies>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.7.2</version>
</dependency>
</dependencies>
Как получить доступ к файлу базы данных sqlite внутри файла .jar?