学过SSH的都知道,整合了SSH之后,SSH的经典增删改查案例业务逻辑层的代码就十分简单.基本上都是一句话的事.

	public void addUser(Webuserlogin user) {
//增
this.getHibernateTemplate().save(user); } public void delUser(int userid) {
//删
this.getHibernateTemplate().delete(queryById(userid));
} public Webuserlogin queryById(int userid) {
//根据ID查询
return this.getHibernateTemplate().get(Webuserlogin.class, userid);
} public void updateUser(Webuserlogin user) {
//改
Webuserlogin users = this.queryById(user.getUserid()); users.setUserrealname(user.getUserrealname());
users.setUseraddress(user.getUseraddress()); this.getHibernateTemplate().merge(users); } public List<Webuserlogin> queryList() {
//查
return this.getHibernateTemplate().find("From Webuserlogin");
} public Webuserlogin loginWeb(Webuserlogin user) {
//登陆 == 按用户名/密码查询
List<Webuserlogin> list = this
.getHibernateTemplate()
.find(
"From Webuserlogin wul Where wul.username = ? and wul.userpwd= ?",
user.getUsername(), user.getUserpwd());
if (list != null && list.size() > 0) {
return user;
}
return null;
}

但是Spring的增删改查并没有将事务整合进去.给我们提供事务的切面,而在实际开发中,增删改查没有事务是非常不利于数据维护的.所以Spring在它的配置文件中给我们提供了用户自定义配置事务的方法.

	<!-- 使用事务!!! -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 配置事务中方法的属性 -->
<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
<tx:attributes> <!-- update* 表示这个事务对 * com.services.*.*(..)中的update开头的方法都有效;
					对于一些只读(比如登陆)的数据,可以设置readonly=true-->
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!--配置生效位置 -->
<aop:config>
<!-- 第一个星号:方法的返回值为次类型的值时生效(com.model.Webuserlogin/String);
			2.services中的哪一个类生效 userServices*;
			3.类中的何种方法生效del*;(..)方法中何种参数时生效 -->
<aop:advisor advice-ref="transactionAdvice"
pointcut="execution(* com.services.*.*(..))" />
</aop:config>

事务配置成功之后,在配置文件(applicationContext.xml)和serviceImpl层会有对应的call out--call in小电话

上图--

Spring中如何配置事务的更多相关文章

  1. Spring框架学习(10)Spring中如何使用事务?

    内容源自:Spring中如何使用事务? 一.为什么要使用事务? 如果我们一个业务逻辑只执行一次sql,是不需要使用事务的.但如果要执行多条sql语句才能完成一个业务逻辑的话,这个时候就要使用事务了. ...

  2. spring中注解式事务不生效的问题

    常用的解决方法可以百度,我针对我的问题描述一下 Mysql中InnoDB引擎才支持事务, MyISAM不支持事务. 当你尝试了各种方法解决spring中注解式事务不生效时, 一定要查看一下数据库中表的 ...

  3. 事务特性,事务的隔离级别以及spring中定义的事务传播行为

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...

  4. spring aop方式配置事务中的三个概念 pointcut advice advisor

    AOP的3个关键概念 因为AOP的概念难于理解,所以在前面首先对Java动态代理机制进行了一下讲解,从而使读者能够循序渐进地来理解AOP的思想. 学习AOP,关键在于理解AOP的思想,能够使用AOP. ...

  5. Spring 中的 JDBC 事务

    Spring 对 JDBC 的支持 JdbcTemplate 简介 •为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架. • ...

  6. Spring中的Jdbc事务管理

    Spring提供了对事务的声明式事务管理,只需要在配置文件中做一些配置,即可把操作纳入到事务管理当中,解除了和代码的耦合. Spring声明式事务管理,核心实现就是基于Aop. Spring声明式事务 ...

  7. spring的annotation-driven配置事务管理器详解

    http://blog.sina.com.cn/s/blog_8f61307b0100ynfb.html ——————————————————————————————————————————————— ...

  8. JavaWeb_(Spring框架)Spring中的aop事务

    1.事务相关知识 a)什么是事务:把多条数据库操作捆绑到一起执行,要么都成功,要么都失败: b)事务的原则ACID: i.原子性:事务包含的所有操作,要么全部成功,要么全部失败回滚,成功全部应用到数据 ...

  9. Velocity初探小结--Velocity在spring中的配置和使用

    最近正在做的项目前端使用了Velocity进行View层的数据渲染,之前没有接触过,草草过了一遍,就上手开始写,现在又回头细致的看了一遍,做个笔记. velocity是一种基于java的模板引擎技术, ...

随机推荐

  1. c#深拷贝的一个方法

    使用ef,有时候会遇到,要对一个对象进行拷贝复制,可是一般的方法,拷贝后会提示此对象的实例在上下文的 entitystate已经存在,就需要用一种拷贝.简单的拷贝只拷贝了值类型,对引用类型的拷贝需要使 ...

  2. 重建二叉树_C++

    一.题目背景 给定一个二叉树的前序和中序遍历,求出它的后序遍历 二叉树的遍历可参考 http://blog.csdn.net/fansongy/article/details/6798278/ 二.算 ...

  3. 小Z爱序列(NOIP信(sang)心(bin)赛)From FallDream(粗制单调队列&单调栈的算法解析)

    原题: 小Z最擅长解决序列问题啦,什么最长公共上升然后下降然后上升的子序列,小Z都是轻松解决的呢. 但是小Z不擅长出序列问题啊,所以它给了你一道签到题. 给定一个n个数的序列ai,你要求出满足下述条件 ...

  4. 官网cocos2d

    http://cocos2d.spritebuilder.com/download           官网 https://github.com/cocos2d/cocos2d-spritebuil ...

  5. VLC for iOS 2.3.0

    http://www.cocoachina.com/bbs/read.php?tid=231898 VLC for iOS 2.3.0       本帖属于CocoaChina会员发表,转帖请写明来源 ...

  6. css3实现图片划过一束光闪过效果

    该效果在京东里的图片有. .img { display:block; position: relative; width:800px; height:450px; margin:0 auto; } . ...

  7. python实现并发获取html的几种方式

    1.线程池 from concurrent.futures import ThreadPoolExecutor import requests from fake_useragent import U ...

  8. python的位运算

    # &: 都是1,才为1,否则为零 # |: 都是0,才为0,否则为1 # ^: 相同为0,相异为1 a = bin(20) b = bin(16) print(a) # 0b10100 pr ...

  9. IFC and BFC

    BFC and IFC 1,IFC -- 针对行内元素 -- 行内格式上下文 BFC --针对块级元素 -- 块级格式上下文 2,IFC特点: 行框的高度由包含元素的高度和有没有float元素决定. ...

  10. Codeforces 1010D Mars rover

    题目大意:对于一个不完全二分图,根节点为1,叶节点值为0或1,非叶节点包含一个操作(and,or,xor,not),求改变各个叶节点的值时(即0改为1,1改为0),根节点的值是多少 解法:遍历图求各节 ...