zfu3382548 2013-06-07 09:56
浏览 476
已采纳

mybatis spring 整合 junit测试。 事务不起作用,不提交。插入无效???

applicationContext.xml 中的数据库和 sessionFactory以及事务配置
[code="xml"]

<!-- Connection Info -->



    <!-- Connection Pooling Info -->
    <property name="maxActive" value="${bss.dbcp.maxActive}" />
    <property name="maxIdle" value="${bss.dbcp.maxIdle}" />
    <property name="defaultAutoCommit" value="false" />
    <!-- 连接Idle一个小时后超时 -->
    <property name="timeBetweenEvictionRunsMillis" value="3600000" />
    <property name="minEvictableIdleTimeMillis" value="3600000" />
    <property name="testOnBorrow" value="true" />
    <property name="testWhileIdle" value="true" />
    <property name="validationQuery" value="${bss.dbcp.validationQuery}" />
</bean>


<!-- MyBatis配置 -->
<bean id="bssSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="bssDataSource" />
    <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 别名 -->
    <property name="typeAliasesPackage" value="com.jxnc56.bss.entity" />
    <!-- 显式指定Mapper文件位置 -->
    <property name="mapperLocations" >
        <list>
        <value>
            classpath:config/mybatis/sqlmap/bss/**/*.xml
        </value>
        </list>
    </property>
</bean>


<!-- 扫描basePackage下所有以@MyBatisRepository标识的 接口-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.jxnc56.bss" />
    <property name="annotationClass" value="com.jxnc56.bss.dao.MyBatisRepository"/>
</bean>

<!-- 事务管理,@Transactional("tmBss") -->
<bean id="tmBss" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="bssDataSource"></property>
    <qualifier type="org.springframework.beans.factory.annotation.Qualifier" value="tmBss" />
</bean>

<!-- 使用annotation定义数据库事务,这样可以在类或方法中直接使用@Transactional注解来声明事务 -->
<tx:annotation-driven transaction-manager="tmBss"  proxy-target-class="true" />

[/code]

java TEST:
[code="java"]
@Transactional("tmBss")
public class ProductServiceTest extends SpringTransactionalTestCase {
@Autowired
private ProductDao pDao;

@Test
public void deleteTest (){
    pDao.delete(4);
    Product product = new Product();
    product.setId(4);
    System.out.println("-------------------------------------------->"+Arrays.toString(pDao.select(product).toArray()));
}

}
[/code]

其中ProductDao 是被@MyBatisRepository标示的接口
log:
2013-06-07 09:40:57 107 - org.mybatis.spring.transaction.SpringManagedTransaction -915 [main] DEBUG org.mybatis.spring.transaction.SpringManagedTransaction - JDBC Connection [jdbc:mysql://localhost/nrcompany?useUnicode=true&characterEncoding=utf-8, UserName=root@localhost, MySQL-AB JDBC Driver] will be managed by Spring
2013-06-07 09:40:57 110 - com.jxnc56.bss.dao.ProductDao.delete -918 [main] DEBUG com.jxnc56.bss.dao.ProductDao.delete - ooo Using Connection [jdbc:mysql://localhost/nrcompany?useUnicode=true&characterEncoding=utf-8, UserName=root@localhost, MySQL-AB JDBC Driver]
2013-06-07 09:40:57 115 - com.jxnc56.bss.dao.ProductDao.delete -923 [main] DEBUG com.jxnc56.bss.dao.ProductDao.delete - ==> Preparing: delete from product where id=?
2013-06-07 09:40:57 140 - com.jxnc56.bss.dao.ProductDao.delete -948 [main] DEBUG com.jxnc56.bss.dao.ProductDao.delete - ==> Parameters: 4(Integer)
2013-06-07 09:40:57 142 - org.mybatis.spring.SqlSessionUtils -950 [main] DEBUG org.mybatis.spring.SqlSessionUtils - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3a9d95]
2013-06-07 09:40:57 142 - org.mybatis.spring.SqlSessionUtils -950 [main] DEBUG org.mybatis.spring.SqlSessionUtils - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3a9d95] from current transaction

  • 写回答

2条回答 默认 最新

  • piggerman 2013-06-07 21:25
    关注
    @Test  
    

    [color=orange][size=large]@Rollback(false)[/size][/color]
    public void deleteTest (){

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 关于#硬件工程#的问题:求一下解题思路
  • ¥15 运筹学对偶单纯行法构造扩充问题
  • ¥20 XP系统的老电脑一开机就提示找不到rundll.exe,付费求解
  • ¥15 milvus查询出来的score怎么转换成0-1之间的相似性
  • ¥15 多ip服务器站群如何搭建l2tp服务器
  • ¥15 lvgl V9移植到linux开发板
  • ¥15 VB.net中在窗体中创建一个button控件来关闭窗体,但是提示错误,我该怎么办
  • ¥15 网上下载好的程序但是arduinoIDE编程报错,运行不了,哪里出错了,能具体给改一下吗
  • ¥15 Sharepoint JS开发 付费技术指导
  • ¥15 输入程序运行仿真后,烟雾值不实时检测,变成固定值