Java中基于文件的数据库

是否有任何库在java中创建使用文件作为数据库的程序,而您不必在要使用它的计算机上安装数据库服务?

Derby和Hypersonic SQL都可以在内存和服务器模式下运行。

H2怎么样?

H2是用Java编写的关系数据库管理系统。 它可以嵌入Java应用程序中,也可以在客户端 – 服务器模式下运行。 磁盘占用空间(jar文件的大小)约为1 MB。 (维基百科)

我们成功地使用http://www.sqlite.org/和http://www.zentus.com/sqlitejdbc/作为JDBC驱动程序。

对于称为SqliteJDBC的SQLite数据库,有一个非常好的java绑定:

http://www.zentus.com/sqlitejdbc/

如果有人寻找一个非常简单的基于文件的数据库,请尝试这个较旧的低级数据库 ,这很容易理解。 这是一个教程,但您可以在此处下载完整的源代码。

基本上它使用简单的RandomAccessFile和标准的java序列化,因此您可以存储所有可序列化的内容,并且您不需要在对象中使用任何特殊配置或注释来使用它。 不需要任何库。

MapDB提供由磁盘存储或堆外内存支持的并发映射,集和队列。 它是一种快速且易于使用的嵌入式Java数据库引擎。

https://github.com/jankotek/MapDB

http://www.mapdb.org/

如上所述,Derby可以在嵌入模式下运行。 它实际上包含在Java 6 SE中并且称为Java DB(尽管它实际上只是Apache Derby)。 它很容易使用,虽然默认的数据库工具(ij)不是很好。 我会使用像SQuirreL SQL这样的东西来查看数据。

除了已经提到的嵌入式关系数据库之外,还存在非关系嵌入式Java数据库,如存在 (XML DB)或db4o (对象DB)。

例如, HSQLDB或Apache Derby可以在嵌入模式下运行。