用于Java的可嵌入"非JDBC"SQL数据库

Cha*_*ase 0 java sql database jdbc

是否有可嵌入的"非JDBC"SQL数据库?这也就是不需要在硬件上运行服务器(如SQLite).

如果它是纯java,奖励积分.

Aar*_*lla 5

有几个:H2,Derby(包含在Java SDK中作为"Java DB")和HSQL

H2非常稳定(但我不会将1.3.x用于生产代码)并且它可以模拟几乎任何其他SQL数据库(即它可以配置为接受Oracle SQL语法).非常适合单元测试.

Derby是DB2的Java版本.它使用起来有点笨拙但准备生产.

HSQLDB是一个较旧的可嵌入纯Java数据库.在我遇到H2之前,我经常使用它.

编辑 H2支持IF NOT EXISTS和许多其他有用的功能.请注意,这样的事情不是JDBC的一部分.JDBC只是将字符串发送到数据库.但每个数据库都有自己的SQL方言和自己的功能集; JDBC无法做到这一点.

如果你寻找使许多数据库行为相似的东西,你应该看看jOOQ.当你关心质量时,你也应该考虑这一点.

  • @Chase不,JDBC驱动程序会将SQL语句转发给您的DBMS而不会改变它.也许你把JDBC和JPQL(JPA的查询语言)混为一谈? (3认同)