ssm框架整合之添加spring事务管理

ssm框架整合spring事务管理

1.在applicationContext.xml中设置哪些service方法需要事务管理
2.通知设置 增删改查业务方法具体对应的事务
同时成功或者同时失败
例如,在添加数据时,第二条数据插入失败,那么其它的数据都插入失败

  • applicationContext.xml
<!--配置事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                <property name="dataSource" ref="dataSource"/>
        </bean>
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
                <tx:attributes>
                        <tx:method name="find*" read-only="true"/>
                        <tx:method name="*" isolation="DEFAULT"/>
                </tx:attributes>
        </tx:advice>
        <!--配置AOP增强-->
        <aop:config>
                <aop:pointcut id="service" expression="execution(* com.dsf.service.impl.*ServiceImpl.*(..))"/>
                <aop:advisor advice-ref="txAdvice" pointcut-ref="service"/>
        </aop:config>
  • 在业务层多添加一个方法
@Override
    public void savePersons(List<Person> persons) {
        System.out.println("执行批量保存");
        for (int i=0;i<persons.size();i++){
            if(i==2){
                //System.out.println(1/0);
            }
            /*当i=2时,未添加事务管理时,0和1这两条数据存入mysql
            当添加了事务管理时,只要0、1、2当中有一条数据失败时,全部数据插入失败
            */
            personDao.save(persons.get(i));
        }
    }
  • 编写测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class TestAdvice {
    @Autowired
    IPersonService personService;
    @Test
    public void test03(){
        List<Person> personList=new ArrayList<>();
        personList.add(new Person("wade",230.3));
        personList.add(new Person("kobe",520.3));
        personList.add(new Person("aolier",888.8));
        personService.savePersons(personList);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值