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、优点
可使用内存数据库,不产生脏数据,无数据干扰,可以重复测试。
hibernate + hsqldb单元测试的更多相关文章
- Hibernate之HQL查询
一.Hibernate 提供了以下几种检索对象的方式: 导航对象图检索方式: 根据已经加载的对象导航到其他对象 OID 检索方式: 按照对象的 OID 来检索对象 HQL 检索方式:使用面向对象的 H ...
- Hibernate 学习笔记 - 1
一.Hibernate 的环境搭建.配置及 HelloWorld 1.在 Eclipse 中搭建 Hibernate 环境 下载 Hibernate 离线 jar 包(jbosstools-4.4.4 ...
- hibernate 中文文档
转载:http://blog.csdn.net/kevon_sun/article/details/42850387 Hibernate Annotations 参考文档 3.2.0 CR1 目录 前 ...
- JAVA中的注解小结
以下内容参考java编程思想-4,jdk版本为jdk5.0,有点老-_-||| 什么是注解 JAVA SE5引入,也称元数据,可以直接添加到代码中,用来完整描述程序所需的信息,而这些信息是无法用Jav ...
- 15个nosql数据库
1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上 ...
- 开源面向对象数据库 db4o 之旅,第 1 部分: 初识 db4o
前言 业界对持久存储领域的追求从未停止过,为了更方便.更容易地用对象表达我们的思维,开源领域和商业领域都涌现了许多新技术, ORM 的出现恰恰说明了这点.最近一年,业界也在反思,到底 ORM 给我们带 ...
- 15个nosql
1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存 储解决方案.当数据量达到50GB以 ...
- 15一个NoSql数据库
随着因特网web2.0该网站的兴起.非关系型数据库,现在已经成为一个非常受欢迎的新领域.非关系数据库产品的发展非常迅速.而在处理传统的关系数据库web2.0现场.特别是大规模,高并发SNS类型web2 ...
- 回顾2018年最受欢迎的十四款NoSQL产品
虽然NoSQL的流行与火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动.尽管早期的堆栈代码只能算是一种实验,然而现在的系统已经更加的成熟.稳定.不过现在也面临着一个严酷的事实:技术越 ...
随机推荐
- 学习zabbix(八)
一,Zabbix架构 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制 ...
- 在IE中设置在序列化没有版本号就提示
- kali Linux 渗透测试 | ARP 欺骗
目录 ARP 欺骗及其原理 ARP 欺骗实施步骤 必备工具安装 nmap 工具 dsniff 工具 driftnet 工具 ettercap 工具 ARP 欺骗测试 ARP 断网攻击 ARP 欺骗(不 ...
- 一、cadence元件库绘制详细步骤
一.元件库 1.打开如下图标的软件 2.勾选1选项,下次就直接打开,不用选择 3.新建库文件File-New-Library,如下图: 4.新建元件 5.绘制元件
- 小程序刷新webview小结
场景 在小程序其它页面做了操作,数据发生改变,回到webview页面时需要更新webview里面的数据.由于小程序没有提供与webview的实时通信能力,因此刷新页面是个可考虑的做法. 方法一 最常见 ...
- Could not autowire. No beans of 'JavaMailSenderImpl' type found
- 手把手带你撸一把springsecurity框架源码中的认证流程
提springsecurity之前,不得不说一下另外一个轻量级的安全框架Shiro,在springboot未出世之前,Shiro可谓是颇有统一J2EE的安全领域的趋势. 有关shiro的技术点 1.s ...
- 导入,导出excel
/// <summary> /// 导出数据 /// </summary> /// <param name="XMMC"></param& ...
- Oracle集群 & Grid(rac)配置,反推创建过程(重要)。
目前机器上,oracle都是安装好的,那么我们怎么知道,之前的安装过程大概是什么样子呢? 大致安装oracle集群的内容: 一.准备和配置: 1.网卡 2.ip资源 3.scanip 4.hosts ...
- eclipse 下 SpringBoot 工程使用Maven打包
eclipse 下 SpringBoot 工程使用Maven打包 1. pom.xml 添加打包配置 点击查看代码 <!-- 打包使用 --> <build> <plug ...