自我学习SSM框架集成(三)

关于事务管理

  对于数据库的增删改查有时候要求两件事只能同时发生或者同时不发生,这时候就要使用事务管理

做事务管理需要额外的jar才行,所以先下载aspectjweaver.jar,并添加至Idea中。

然后再用以下两种方法进行实现

SSM事务管理的实现(一)

通过XML配置方式:修改applicationContext,以支持AOP方式

<!--     <tx:annotation-driven transaction-manager="transactionManager"/> -->

    <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="add*" propagation="REQUIRED" rollback-for="Exception" />  

            <tx:method name="del*" propagation="REQUIRED" rollback-for="Exception"/>

            <tx:method name="edit*" propagation="REQUIRED" rollback-for="Exception" />

            <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/>  

            <tx:method name="list*" propagation="REQUIRED" rollback-for="Exception"/>  

        </tx:attributes>  

    </tx:advice>  

    <aop:config>  

        <aop:pointcut id="serviceMethod" expression="execution(* com.how2java.service.*.*(..))"/>  

        <aop:advisor pointcut-ref="serviceMethod" advice-ref="txadvice"/>  

    </aop:config>       
"execution(* com.how2java.service.*.*(..))"这个意思是对于service文件夹下的所有文件夹的所有类方法来搜索txadvice中提到的方法  然后进行捆绑回滚

SSM事务管理的实现(二)

一、修改applicationContext添加

 <tx:annotation-driven transaction-manager="transactionManager"/>

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource" />

    </bean>

二、对为addTwo方法加上事务注解

@Service

public class CategoryServiceImpl  implements CategoryService{

    @Autowired

    CategoryMapper categoryMapper;

    public List<Category> list(){

        return categoryMapper.list();

    }

    public void deleteAll() {

        List<Category> cs = list();

        for (Category c : cs) {

            categoryMapper.delete(c.getId());

        }

    }

    @Override

    @Transactional(propagation=Propagation.REQUIRED,rollbackForClassName="Exception")

    public void addTwo() {

        Category c1 = new Category();

        c1.setName("短的名字");

        categoryMapper.add(c1);

        Category c2 = new Category();

        c2.setName("名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,");

        categoryMapper.add(c2);

    };

}
 

原文地址:https://www.cnblogs.com/Mr-BING/p/10324514.html

时间: 2024-11-10 13:50:35

自我学习SSM框架集成(三)的相关文章

自我学习SSM框架集成(二)

手动SQL方式分页 一.首先来看看最重要的Page类. 首先我们让start默认为0,count=5.count为一页的容量,而令start为0,是如果浏览器访问不输入start参数就默认为从头开始浏览页信息 而public void caculateLast是用来获取最后一页的开始 ,这样就可以一键点到最后一页 public class Page { int start=0; int count = 5; int last = 0; public int getStart() { return

(*)(转)要快速学习SSM框架,你需要一套学习曲线平滑的教程

作者:meepo链接:https://www.zhihu.com/question/57719761/answer/156952139来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 要快速学习SSM框架,你需要一套学习曲线平滑的教程 1. 很快可以看到效果 SSM框架这种教程的,在百度或者git上一搜一大把,不过很遗憾,大部分你照着上面的流程做,是做不出来的,要么缺少包,要么配置文件漏了一个,要么本身就有问题.不仅浪费了你的时间,还会产生消极的作用,让你怀疑自己是

SSM框架集成.上(供自己练习查阅用)

1.创建项目 2.准备相关依赖包 2.1   spring相关jar包 2.2   springMVC相关jar包 2.3 mybatis 相关jar包 2.4mybatis 和spring集成的桥梁包 2.5数据库驱动包和连接池 2.6 jstl 标签库依赖包 2.7 mybatis支持的日志包 3.配置文件准备 4.mapper层(dao层代码) public interface UserMapper { int insert(User user); User selectByPrimary

SSM框架集成(附源码)

简述 SSM框架的集成主要是Spring和MyBatis的集成,SpringMVC和Spring天然集成. 1.在IDEA新建一个Maven项目 图1. 创建web-app 1.2 创建确实的文件夹,结构如下 图2.文件夹结构 2.添加相关依赖 2.1 配置pom.xml <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.s

Java高并发秒杀系统API之SSM框架集成swagger与AdminLTE

初衷与整理描述 Java高并发秒杀系统API是来源于网上教程的一个Java项目,也是我接触Java的第一个项目.本来是一枚c#码农,公司计划部分业务转java,于是我利用业务时间自学Java才有了本文,本来接触之初听别人说,c#要转java很容易,我也信了,但是真正去学习的时候还是踩了无数个坑,好在朋友有几个做安卓的,向他们讨教了一些经验,但是他们做安卓的和web又是两个方向,于是继续一个人默默采坑避雷之旅,首先上手的是下面这个Java高并发秒杀系统API. 学习java的初衷一个是公司转行,二

SSM+Maven(教程一):学习SSM框架的前提条件。

一.准备工作 二.环境准备 1.配置jdk:http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html Intelij中配置JDK:File-Project Structure 2.配置maven:http://www.cnblogs.com/qiuyong/p/6292678.html 3.Intelij配置git:.. 三.知识储备 参考Web初阶.Jsp/servlet.Mybatis系列.上述建议针对于刚入门的同学.特别是

一步步学习Hibernate框架(三):采用jpa实现一对多关联映射(一)

JPA(Java Persistence API)是Sun官方提出的一种Java持久化规范.为Java开发人员提供了一种对象/关系映射工具,管理Java应用中的关系数据.JPA的总体思想和现有Hibernate.TopLink等ORM框架大体一致.总的来说,JPA包括以下3方面的技术: 第一:ORM映射元数据 JPA支持XML和JDK 注释(也可译作注解)两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中. 第二:Java持久化API 用来操作实体对象,执行

SSM框架集成.下(供自己练习查阅用)

spring和springMVC集成 在web.xml配置前端springMVC前端控制器(总控) <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLo

Redis缓存 集成SSM框架

Java SSM 框架集成 Redis框架 1.下载 Jedis依赖 <.!-- jedis依赖 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId&g