要用应用程序打包的最轻的数据库
我正在开发一个Java桌面应用程序,并希望有一个可以与Hibernate
一起使用的light database
,并且可以使用应用程序打包。
我打算使用Derby
数据库。 它的大小接近2 MB。 但在此之前,我希望得到有关SO的专家意见。
它适用于Hibernate
吗?
实际上,我是Hibernate的新手,并且正在研究它需要一个Dialect
用于数据库,所以Hibernate是否有Derby
方言?
JavaDB (Sun支持开源Apache Derby的分发), HSQLDB (不是非常活跃)和H2 ( HSQLDB的后继者 )都是100%Java可嵌入数据库引擎,并且都可以与Hibernate一起使用(即它们有方言) 。 请参阅本页和本页 。
HSQLDB具有所有这些中最小的占用空间(~700 KB)。 但function明智(参见此比较 ),H2是明显的赢家,它的足迹(~1 MB)仍然小于Derby的一个(~2 MB)。
最终的选择取决于你需要什么,但H2是一个很好的function和尺寸折衷(换句话说,一个伟大的竞争对手)。 看看上面提到的比较。
我推荐HSQLDB 。 它体积小,速度快,运行时可以很好地运行Hibernate。 Hibernate也有Derby DB的方言(虽然我没有使用它,但我认为Hibernate还没有正式支持)。
另一种选择是SQLite。
Hibernate和SQLite
您也可以尝试Firebird
有嵌入式版本和客户端/服务器模式版本
这里是hibernate 支持的数据库的链接
- 关于@ ForceDiscriminator / @ DiscriminatorOptions(force = true)的使用
- 加入fetch:“查询指定的连接提取,但获取的关联的所有者在选择列表中不存在”
- 数据未保存:对象引用未保存的瞬态实例 – 在刷新之前保存瞬态实例
- Hibernate – 插入大blob的内存不足
- Spring引导JPA – JSON没有嵌套对象与OneToMany关系
- 如何使用Hibernate实现自定义字符串序列标识符生成器
- Spring MVC @ModelAttribute方法返回“Bad request”400
- 中大结果集上的Hibernate,JDBC和Java性能
- “找不到持久性单元”错误