java - 将 sqlite 数据库添加到可执行 JAR 文件

标签 java eclipse jdbc

我正在使用 JAVA(与 eclipse juno)并尝试创建一个包含 sqlite DB 文件的可执行 JAR 文件。 我试图通过这条线连接到数据库:

DriverManager.getConnection("jdbc:sqlite:"+DataController.class.getResource("test.sqlite").getPath())

DataController 是一个位于 sqlite 所在位置的类。

我一直收到错误:

java.sql.SQLException: invalid database address

有人可以提供有关如何将 sqlite 数据库包含在可执行 JAR 文件中的分步说明吗?

最佳答案

显然 sqlite-jdbc 可以自行打开资源。根据这个线程 https://groups.google.com/forum/?fromgroups=#!topic/xerial/Oayzj5nrJGk ,将 :resource 添加到路径中。所以请尝试以下操作:

DriverManager.getConnection("jdbc:sqlite::resource:package/test.sqlite"); 

或者取决于sqlite的版本

DriverManager.getConnection("jdbc:sqlite::resource:package/test.db"); 

将包替换为此文件所在包的“/”分隔路径。

请注意,它实际上会将文件复制到 tmp 目录。-

关于java - 将 sqlite 数据库添加到可执行 JAR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15187043/

相关文章:

Java 泛型和原始类型

java - 字符串和文本文件java

java - 在 Java 8 中,如何同时遍历两个数组?

java - 如何在 neo4j 中创建服务器插件

eclipse - 如何从 eclipse 连接到 docker 进行调试?

java - Junit 参数化输入和断言

java - 如何在 Java 中实现没有资源泄漏警告的 Stream<E>

java - 如何在 PreparedStatement 上设置查询超时?

java - JDBC:ResultSet 的默认可持有性

java - Hibernate 和 Apache Tomcat 的问题