• hibernate + hsqldb单元测试


    1、测试环境连接hsqldb,使用hibernate的自动建表功能。

     1 <bean id="sessionFactory"
     2        class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
     3     <property name="dataSource" ref="dataSource"/>
     4     <property name="packagesToScan">
     5         <list>
     6             <!-- 可以加多个包 -->
     7             <value>test.data</value>
     8         </list>
     9     </property>
    10     <property name="hibernateProperties">
    11         <props>
    12             <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    13             <prop key="hibernate.show_sql">true</prop>
    14            <!-- 启动时自动删除以前的数据库表,重新建表,谨慎使用 -->
    15              <prop key="hibernate.hbm2ddl.auto">create</prop>
    16         </props>
    17     </property>
    18 </bean>

    2、hsql不支持AUTO_INCREMENT语法,因此带有以下注解的表不能自动创建,需要自己手动加载sql文件创建表。

    @GeneratedValue(strategy = GenerationType.IDENTITY)
    加载sql文件的配置如下:
    <jdbc:embedded-database id="dataSource" type="HSQL">
        <jdbc:script location="/data/hsql_init.sql"/>
    </jdbc:embedded-database>
    
    

    3、使用事务回滚

    @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = "/pathTo/spring/context/applicationContext.xml")
    @TransactionConfiguration(transactionManager = "jdbcTransactionManager", defaultRollback = true)
    @Transactional
    public class LocationDaoTest {
      @Test
      public void testDAOsCRUD(){}
    }

    这个方法没有验证过。

    4、保留字问题

    尽量不要在表名称、列名称中使用保留字,因为不同的数据库对保留字处理方式不一样,有的使用(`keyword`),有的使用("keyword"),有的使用([keyword]),无法实现使用hsqldb对其他数据库的无缝测试。

    5、优点

    可使用内存数据库,不产生脏数据,无数据干扰,可以重复测试。

  • 相关阅读:
    编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
    【转】 Oracle 用户权限管理方法
    oracle实例内存(SGA和PGA)调整
    oracle修改内存使用和性能调节,SGA
    下星期计划——9.7~9.13
    医疗数据分析——过高费用的异常检测
    Groovy介绍
    Java 7代码层面上的更新
    Java陷阱之assert关键字
    支持向量机(SVM)、支持向量回归(SVR)
  • 原文地址:https://www.cnblogs.com/ylty/p/6417259.html
Copyright © 2020-2023  润新知