开发者社区> 问答> 正文

spring mvc4.0 + mybatis mysql 事物配置不回滚

applicationContext-web.xml

<context:component-scan base-package="cn.np.*">  
      <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan> 
    <bean id="dataSource" class = "org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
   <property name="driverClassName" value="${db.driver.class}" />   
   <property name="url" value="${db.url}" /> 
        <property name="username" value="${db.username}" />
        <property name="password" value="${db.password}" />
    </bean>
    <!-- 定义Mybatis模板 -->
    <bean id="sqlMapClientTemplate" class="org.mybatis.spring.SqlSessionTemplate">
       <constructor-arg ref="sqlSessionFactory"/>
    </bean> 
    <!-- Spring整合Mybatis:创建 sqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
        <property name="configLocation" value="classpath:/mybatis/SqlMapConfig.xml">
        </property>  
        <property name="mapperLocations" value="classpath:cn/db/*.xml"></property>  
    </bean>
 <!-- jdbc事物 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
<!-- 配置 Annotation 驱动,扫描@Transactional注解的类定义事务  -->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>

---------------------------------------------------------------------------------------------------------
springMVC.xml

  
     <context:component-scan base-package="cn.np.*">  
      <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan> 
 
<mvc:annotation-driven />
<!-- 开启注解 -->
<!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> -->
<!--加载页面文件位置 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
<!--加载静态文件 -->
<mvc:resources location="/status/" mapping="/status/**" />
<!--dao层工具类 -->
<bean name="commonDao" class="cn.core.CommonDao" />
<!--工具类 -->
<bean name="util" class="cn.core.Util" />
...

----------------------------------------------------------------------------------------------------

testServiceImpl

@Transactional
@Service(value="testServiceImpl")
public class TestServiceImpl implements TestService{

@Resource(name="commonDao")
private CommonDao commonDao;


@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor=Exception.class) 
public List<Map<String, Object>> select_np_user() throws Exception {
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
Map<String,Object> inParamMap = new HashMap<String,Object>();
inParamMap.put("test1", "test1");
commonDao.insert("insert_test1", inParamMap);
if(1==1){
throw new RuntimeException();
}
Map<String,Object> inParamMap1 = new HashMap<String,Object>();
inParamMap1.put("test2", "test2");
commonDao.insert("insert_test2", inParamMap1);
return list;
}


}

数据库mysql表类型也改了innoDb
可是就是不回滚,求大神指导啊!
在线等。。。急啊。。。。。。

展开
收起
小旋风柴进 2016-03-11 16:34:27 3557 0
1 条回答
写回答
取消 提交回答
  • 在springMvc里改动后

    <context:annotation-config />
     
         <context:component-scan base-package="cn.*">  
          <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
    </context:component-scan> 
    2019-07-17 18:59:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题) 立即下载

相关镜像