怎么使用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的东西了,单元测试就很好写了

转载于:https://www.cnblogs.com/juniorMa/p/7163091.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值