如何在jar文件中使用SQLite数据库?

all*_*rry 12 java sqlite jar java-web-start

我无法弄清楚如何 Java .jar文件中包含SQLite数据库以进行部署(通过Java WebStart).

数据库并没有需要在运行时更新中...它本质上是一个华而不实的配置文件.

顺便说一句,使用Eclipse.

小智 11

SQLite 需要单独的文件,因为引擎确保锁定和ACID.即使不需要更新数据库,SQLite也只能用于直接文件访问(或内存支持,但不能从Java或其他主机提供;-) - SQLite在这里显示它不是纯Java解决方案,也不是设计用于不使用基本系统IO子系统的系统.

SQLite数据文件可以在开始时从JAR 提取到临时位置(如果需要,可以在最后放回那里) - 但除了类似于这种方法之外,不可能.任务本身并不复杂,但是另一件事需要完成,并且可能需要在某些环境中不具备的额外权限.

快乐的编码.


Pau*_*ald 5

你考虑过HSQLDB吗?获得HSQLDB可能比使用sqlite更好地解决这个问题.我知道你说这是只读的,但这显然不是你配置sqlite的方式.

其他选项是存储sqlite数据库的转储

sqlite3 .dump
Run Code Online (Sandbox Code Playgroud)

在您的jar文件中,通过getResourceAsStream()从类路径启动时读取它,并在应用程序启动时创建数据库.显然,这会增加启动开销,并不理想,但可能会有所作为.

编辑:刚发现的代码实际上是创建数据库编程这里.根据数据库的大小,存储SQL(必要时压缩)和启动时创建数据库可能不是那么可怕.


Sni*_*las 2

另一个值得考虑的好选择是 derby、javadb。它现在与 java 捆绑在一起,设置速度非常快,并且具有良好的性能。

\n\n

问候,\n St\xc3\xa9phane

\n