H2,Derby,HSQL内存数据库体验

前一段时间接触了下spring支持的3种嵌入式数据库,希望能替代MySQL, 结果不太理想, 记录一下。


1. 使用背景:

             小组希望有独立的单测数据库,这样能保证测试数据的稳定性。

             本身项目用spring, 优先选择spring自带的3个嵌入式数据库。


2.  内存数据库的问题

Derby

1. 支持的datatype很少(int型的只有int, smallint, bitint),这个还可以接受

2. 有一些保留关键词(比如Hour等)不能使用,  但是通过加“”也可以解决

    Derby的保留关键词请见: http://db.apache.org/derby/docs/10.11/ref/index.html

3. limit,offset与mysql语法不一致

HSQL

1. 语法问题

主要是对limit和offset的支持不够

2. 自有的关键词限制(这个也跳不过的)
比如count就不行,还有一些其它的keyword
keyword的保留字请见:http://www.hsqldb.org/doc/2.0/guide/lists-app.html#lta_disallowed_keywords

H2
H2对语法的支持以及数据类型之类的与MYSQL的兼容都是最高的,什么都OK

唯一的问题就是返回默认大写,这个搞了半天,终于搞定了。。spring配置如下

<bean id="my_datasource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
     <property name="driverClass" value="org.h2.Driver"/>
     <property name="url" value="jdbc:h2:mem;DATABASE_TO_UPPER=FALSE" />
</bean>

<jdbc:initialize-database data-source="my_datasource">
      <jdbc:script location="classpath:database-H2/olap.sql" />
      <jdbc:script location="classpath:database-H2/olap_data.sql" />
</jdbc:initialize-database>

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要选择一个嵌入式数据库,例如H2,HSQLDerby,需要考虑以下几点: 1. 功能和性能:首先要评估所需的功能和性能需求。嵌入式数据库不同于传统的客户端-服务器数据库,通常被用于单用户或小规模应用中。因此,需要根据具体情况选择适合的数据库H2、HSQLDerby都是面向嵌入式应用的数据库,提供了高度的灵活性和出色的性能。 2. 适应性和易用性:考虑数据库的适用性和易用性对于开发人员来说也是非常重要的。需要考虑的因素包括开发工具、文档和社区支持等。H2、HSQLDerby在这方面都有很好的表现,提供了易于使用和广泛的文档和社区支持。 3. 数据一致性和可靠性:对于数据库来说,数据一致性和可靠性是至关重要的。嵌入式数据库需要能够保证数据的一致性和可靠性,在应用程序崩溃或断电等异常情况下能够正确处理数据。H2、HSQLDerby都提供了事务支持和数据持久化功能,可以保证数据的完整性和可靠性。 4. 可扩展性和兼容性:考虑到未来可能的需求变化,数据库的可扩展性和兼容性也是需要考虑的因素。可以评估数据库的扩展性和兼容性,看是否能够轻松地支持未来的需求变化。H2、HSQLDerby都提供了良好的兼容性和扩展性,可以满足大多数嵌入式应用的需求。 总之,要选择一个合适的嵌入式数据库,需要综合考虑功能性能、适应性易用性、数据一致性可靠性以及可扩展性兼容性等因素。根据具体的需求和情况,可以选择H2、HSQLDerby中的一个作为嵌入式数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值