怎么使用hsqldb 和 mybatis 构造单元测试

项目是使用spring + mybatis的项目

下面说下配置怎么写:

spring中这样写:

<jdbc:embedded-database id="dataSource">
        <jdbc:script location="classpath:/test/vmdb.script"/>
    </jdbc:embedded-database>   -- 关键是这句

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 实例化sqlSessionFactory时需要使用上述配置好的数据源以及SQL映射文件 -->
        <property name="dataSource" ref="dataSource" />

        <property name="mapperLocations" value="classpath:com/suning/rdrs/admin/mapping/*.xml" />
    </bean>
    <!-- 配置扫描器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 扫描com.suning.rdrs.admin.dao这个包以及它的子包下的所有映射接口类 -->
        <property name="basePackage" value="com.suning.rdrs.admin.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>

单元测试的构造内存数据库的写法

private Connection conn;
    @Before
    public void before(){
        //使用"spring.xml"和"spring-mybatis.xml"这两个配置文件创建Spring上下文
        ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"/test/spring.xml","/test/conf.xml"});
        //从Spring容器中根据bean的id取出我们要使用的userService对象
        userService = (ITaskService) ac.getBean("taskService");
        try {
             conn = DriverManager.getConnection("jdbc:hsqldb:mem:rdrs","sa",""); //启动内存数据库 rdrs,用户名sa 密码空
        } catch (SQLException e) {

        }
    }

另外贴上脚本语句,虽然号称兼容,但是兼容不是那么好

INDEX index_taskname (TASKNAME,USERNAME) 这样的不兼容

COLUMN_PAIR text character set utf8 , text指定字符集不兼容

SET DATABASE SQL SYNTAX MYS TRUE; -- 兼容mysql

CREATE TABLE TASK (
  ID INT(10) NOT NULL auto_increment,
  TASKNAME varchar(150) NOT NULL,
  USERNAME varchar(150) NOT NULL,
  STATUS varchar(20) NOT NULL,
  TASK_TYPE varchar(20) NOT NULL,
  GMT_CREATE varchar(80) NOT NULL,
  GMT_START varchar(80) NOT NULL,
  PRIMARY KEY  (ID),
) ;

剩下的就是单纯mybatis的东西了,单元测试就很好写了

时间: 2024-10-19 11:27:52

怎么使用hsqldb 和 mybatis 构造单元测试的相关文章

springMVC+mybatis 进行单元测试时 main SqlSessionFactoryBean - Parsed configuration file: &#39;class path resource&#39; 无限的读取xml文件

今天终于写完的Dao层的操作,怀着无比激动的心情,进行单元测试,就在最后一个方法,对的就是最后一个方法,启动单元测试就会报以下错误: [2016-05-11 18:25:01,691] [WARN ] main BoneCPConfig - Please use setIdleConnectionTestPeriodInMinutes in place of setIdleConnectionTestPeriod. This method has been deprecated. [2016-0

Atitti mybatis的单元测试attilax总结

版本mybatis 3.2.4 /palmWin/src/main/java/com/attilax/dao/mybatisTest.java /palmWin/src/main/java/com/taYu/mapping/UsersMapper.xml <!--根据条件查询管理员信息(userMane:登录名:password:密码) --> <select id="QueryByUsersByMap" parameterType="map" r

MyBatis 构造动态 SQL 语句

以前看过一个本书叫<深入浅出 MFC >,台湾 C++ 大师写的一本书.在该书中写道这样一句话,"勿在浮沙筑高台",这句话写的的确对啊.编程很多语言虽然相同,但是真正做还是需要认真的学习,如果只是想着按想像着来,真的是会走很多弯路,浪费很多时间. 无法使用 not in 在项目中需要使用到 not in ,想着不是很复杂,但是这个问题困扰了我个把小时,很是郁闷.自己拼接好了字符串,字符串的内容是 not in 中的各个 id 值.通过 not in 来进行 update 的

Mybatis 构造resultMap 搜sql

映射配置文件 <!-- type:映射数据类型的实体类 id:resultMap的唯一标识 --> <resultMap type="person" id="BaseResultMap"> <!-- column:库表的字段名 property:实体类里的属性名 --> <id column="person_id" property="personId" /> <resul

如何做好单元测试

前言 单元测试是对软件基本组成单元进行的测试,是属于白盒测试的范畴,它主要通过对代码的逻辑结构进行分析来设计测试用例.在动态测试手段中,单元测试是一种非常高效的测试方法,并且是软件测试周期中第一个进行的测试.从成本角度考虑,缺陷发现越早越好,加强单元测试力度有利于降低缺陷定位和修复难度,从而降低缺陷解决成本,同时加强单元测试也减轻了后续集成测试和系统测试的负担.根据业界的统计,一个 BUG 在单元测试阶段发现花费是 1 的话,到集成测试就变为 10 ,到系统测试就高达 100 ,到实际推向市场量

[转] Python自动单元测试框架

一.软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施.正像软件熵(software entropy)所描述的那样:一个程序从设计很好的状态开始,随着新的功能不断地加入,程序逐渐地失去了原有的结构,最终变成了一团乱麻(其实最初的"很好的状态"得加个问号).测试的目的说起来其实很简单也极具吸引力,那就是写出高质量的软件并解决软件熵这一问题. 可惜的是,软件开发人员很少能在编码

Python的单元测试框架

一.软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施.正像软件熵(software entropy)所描述的那样:一个程序从设计很好的状态开始,随着新的功能不断地加入,程序逐渐地失去了原有的结构,最终变成了一团乱麻(其实最初的"很好的状态"得加个问号).测试的目的说起来其实很简单也极具吸引力,那就是写出高质量的软件并解决软件熵这一问题. 可惜的是,软件开发人员很少能在编码

Python自动单元测试框架

原文链接:http://www.ibm.com/developerworks/cn/linux/l-pyunit/ 软件的测试是一件非常乏味的事情,在测试别人编写的软件时尤其如此,程序员通常都只对编写代码感兴趣,而不喜欢文档编写和软件测试这类"没有创新"的工作.既然如此,为什么不让程序员在编写软件时自己加入一些用于测试的代码,使测试过程自动化呢?在软件工程中,这一技术称为自动单元测试,本文介绍在用Python开发软件时如何实现这一目标. 一.软件测试 大型软件系统的开发是一个很复杂的过

腾讯资深架构带你深入MyBatis技术原理与实战

本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:https://mp.weixin.qq.com/s/osB-BOl6W-ZLTSttTkqMPQ 前言 本书主要讲解了MyBatis 的应用.从目前的情况来看,国内图书市场上没有介绍 MyBatis的书籍,有的只是官方的API和少数的几篇博客文章,国外图书市场上的这类书 籍也是凤毛麟角,这使得系统学