占用空间小的嵌入式 Java SQL 数据库

Posted

技术标签:

【中文标题】占用空间小的嵌入式 Java SQL 数据库【英文标题】:Small footprint embedded Java SQL database 【发布时间】:2011-06-18 14:16:17 【问题描述】:

我正在寻找一个用于 Java 且占用空间小的嵌入式 SQL 数据库。类似 SQLite 的东西,但它应该是纯 Java。到目前为止,我已经看到了 HSQLDB、H2 和 Apache Derby,但它们还不能称为占用空间小。理想情况下,我正在寻找的数据库可以嵌入到 J2ME 应用程序中。

有这样的吗?

【问题讨论】:

@MJB,正如我在问题中所说的那样:“理想情况下,我正在寻找的数据库可以嵌入到 J2ME 应用程序中”。 我不认为你会找到一个好的 SQL J2ME 数据库。 AFAIR 在 J2ME 中没有可用的 RandomAccessFile(请参阅 ***.com/questions/3795327/file-random-access-in-j2me ) - 没有这个数据库实现几乎是不可能的,因为您必须经常重新打开它,并且许多 J2ME 文件系统实现都存在问题。 【参考方案1】:

看看HSQLDB或H2DB

或者可能是基于轻键值的数据库,例如 jdbm2

【讨论】:

HSQLDB 和 H2 的创建者,Thomas Mueller,states 认为 H2 在大多数操作上都比 HSQLDB 更快,并且在架构上更优越。您可能应该使用 H2 而不是 HSQLDB。【参考方案2】:

是的,有一个名为 Apache Derby 的 Apache 项目。

【讨论】:

【参考方案3】:

你可以试试http://www.jepstone.net/tinySQL/。

优点:

很小(93k!) 可嵌入 它使用 DBF 或文本文件文件来存储数据,因此易于阅读。

缺点:

这是一个旧的无人维护的项目 它不是为在 j2me 中工作而设计的,但由于它可以在 JDK 1.1.8 中工作,因此使其在 j2me 中工作并不难。当然,您必须将一些代码从使用 RandomAccessFile 更改为 FileConnection 之类的东西,但至少您不需要弄乱与泛型相关的代码。 速度不是很快,因为它不使用索引,所以你需要尝试看看它是否适合你的需求 它的功能并不完整,只是为您提供了一小部分 SQL

【讨论】:

【参考方案4】:

你也可以看看:

弗洛吉-http://floggy.sourceforge.net/ Perts Lite - http://www.mcobject.com/j2me_database/ J2MEMicroDB - http://morfeo.upc.es/crom/mod/wiki/view.php?id=16&page=Qu%E8+%E9s+J2MELSDATALIB&gid=0&uid=0 HandyDB - http://sourceforge.net/projects/rms-db-class/ MicroDB - http://sourceforge.net/projects/microdb/ OpenBaseMovil - http://www.openbasemovil.org/2007/11/26/openbasemovil-portable-j2me-database-applications/

此列表是我刚刚在互联网上找到的 (http://www.coderanch.com/t/230853/JME/Mobile/List-Database-ME),其中列出的一些产品似乎已被废弃,但我认为它可能会有所帮助...

【讨论】:

以上是关于占用空间小的嵌入式 Java SQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

Java中,空HashMap空间分配

SQL server Varchar(max) 和占用的空间

文档中的空白字段会占用 Mongoose 的空间吗?

C# System.Drawing.Graphics 画图后,如何保存一个低质量的图片,一个占用空间较小的图片

新建一个空文件占用多少磁盘空间?

sql数据库莫名奇妙的变大了 非常占用磁盘空间