spring-Spring配置事务后不回滚,麻烦各位大侠帮小弟看看

问题描述

Spring配置事务后不回滚,麻烦各位大侠帮小弟看看

****Spring 配置文件:****

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
    <!-- 注册驱动配置 -->
    <property name="driverClassName">
        <value>oracle.jdbc.driver.OracleDriver</value>
    </property>
    <property name="url">
        <value>jdbc:oracle:thin:@localhost:1521:serc</value>
    </property>
    <property name="username">
        <value>serc</value>
    </property>
    <property name="password">
        <value>serc</value>
    </property>
</bean>
<!-- 事务 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>
<bean id="transactionBase" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" lazy-init="true" abstract="true">
    <!--abstract="true"时,该bean不会被实例化 lazy-init="true"的bean,IoC容器启动时不会实例化该bean,只有当容器需要用到时才实例化它。lazy-init有利于容器效率,对于不需要的bean可以先不管 -->
    <property name="transactionManager" ref="transactionManager"/>
    <property name="transactionAttributes">
        <props>
            <prop key="*">PROPAGATION_REQUIRED</prop>
        </props>
    </property>
</bean>
<bean name="/register" class="com.x1ngms.action.UserBeanAction" scope="prototype">
         <property name="userBeanBiz">
            <ref bean="userBeanBiz"/>
         </property>
</bean>
<bean name="userBeanBiz" class="com.x1ngms.biz.UserBeanBizImpl">
        <property name="userBeanDao">
            <ref bean="userBeanDao"/>
        </property>
</bean>
<bean name="userBeanDaoTarget" class="com.x1ngms.dao.UserBeanDaoImpl">
    <property name="dataSource">
        <ref bean="dataSource"/>
    </property>
</bean>
<bean id="userBeanDao" parent="transactionBase">
    <property name="target">
        <ref bean="userBeanDaoTarget"/>
    </property>
</bean>

DAO代码:
public class UserBeanDaoImpl extends JdbcDaoSupport implements UserBeanDao {

//数据源方式
public void addUserBean(UserBean userBean) {
    try {
        String sql = "insert into user_test(id,name,lo1ginName,password)values(SEQ_USER_TEST_ID.NEXTVAL,'"+userBean.getName()+"','"+userBean.getLoginName()+"','"+userBean.getPassword()+"')";
        this.getJdbcTemplate().execute(sql);
    } catch (Exception e) {
        throw new RuntimeException(e.getMessage());
    }
}
public List<UserBean> getList() {
    try {
        String sql = "select id,name,loginName,password from user_test order by id ";
        return (List<UserBean>)this.getJdbcTemplate().queryForList(sql);
    } catch (Exception e) {
        throw new RuntimeException(e.getMessage());
    }
    //return null;
}
public void deleteUser(String id){
    try {
        String sql = "delete from user_test where id ="+id;
        this.getJdbcTemplate().execute(sql);
    } catch (Exception e) {
        throw new RuntimeException(e.getMessage());
    }

}
时间: 2024-10-28 11:42:01

spring-Spring配置事务后不回滚,麻烦各位大侠帮小弟看看的相关文章

sping hibernate 事务-spring注解方式事务控制没有回滚

问题描述 spring注解方式事务控制没有回滚 项目中使用到了hibernate以及spring事务控制,在service层增加事务控制但是遇到异常没有回滚. 代码如下: 配置文件 <?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springfr

spring事务回滚只能配在service层吗。为什么我想在Test中添加事务不能进行回滚呢

问题描述 spring事务回滚只能配在service层吗.为什么我想在Test中添加事务不能进行回滚呢 <tx:advice id="txAdvice2" transaction-manager="txManager"> <tx:attributes> <tx:method name="inserttwo*" propagation="REQUIRED"/> </tx:attribut

spring的事务管理 批量回滚

问题描述 spring的事务管理 批量回滚 如果我有5条SQL语句 然后 第一第二条都没问题 第三条出问题了 需要全部回滚,请问下 Srping本身的那个事务管理器能达到吗 用注解拦截器的方法实现 解决方案 Spring的事务管理与回滚Spring事务管理-回滚spring事务管理 junit回滚 解决方案二: 放在同一个事务里面,异常就会都回滚

spring mybatis集成,出错不回滚

问题描述 spring mybatis集成,出错不回滚 配置文件,spring-servelt.xml <!-- 加载Controller --> <context:component-scan base-package="com"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"

spring中配置事务管理的问题

问题描述 spring中配置事务管理的问题 我的Spring配置文件中加上下面的配置,程序启动就报404,是为什么? <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" propagation="REQUIRED" read-only=&q

MySQL数据库误操作后快速回滚的方法_Mysql

基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了.误操作后,能快速回滚数据是非常重要的. binlog2sql快速回滚 首先,确认你的MySQL server开启了binlog,设置了以下参数: [mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log max_binlog_siz

spring 事务管理 手动回滚策略

问题描述 如果我不用spring的事务代理机制,直接在service代码中进行事务的提交或者回滚处理,那么一般是这样的处理逻辑-->主要有2点:即1:事务流程中,某一节点的数据(正常返回)遇到某值时,进行回滚,执行结果中说明情况.2:事务流程中,try catch 所有的代码-->保证遇到运行时异常,或者error的时候,进行回滚现在要用spring的事务管理了,导致在处理提到的第一个情况的时候有个问题,不知道如何解决就是spring所管理到的业务代码方法,必须要抛出指定异常,才可以回滚那么,

spring boot controller设置 @Transactional 不回滚的解决办法

在spring boot 中,使用事务非常简单,直接在方法上面加入@Transactional 就可以实现,以下是我的做法 @GetMapping("delete")     @ResponseBody     @Transactional         public void delete(@RequestParam("id") int id){             try {            //delete country             

事务中处理回滚

问题描述 问题:更新两个不同厂商的数据库(如informix和oracle),必须同时更新成功,或者其中一个失败时都要回滚.怎么解决? 解决方案 最傻的办法就是这样了... ......try{ //改变自动提交方式. connOracle.setAutoCommit(false); connInformix.setAutoCommit(false); stmt = connOracle.createStatement(); stmt = connInformix.createStatement