java学习
java学习
用注解的方式加事务
在applicationContext.xml里写:
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<
beans xmlns
=
"
http://www.springframework.org/schema/beans
"
xmlns:xsi
=
"
http://www.w3.org/2001/XMLSchema-instance
"
xmlns:p
=
"
http://www.springframework.org/schema/p
"
xmlns:aop
=
"
http://www.springframework.org/schema/aop
"
xmlns:tx
=
"
http://www.springframework.org/schema/tx
"
xmlns:context
=
"
http://www.springframework.org/schema/context
"
xsi:schemaLocation
=
"
http:
//
www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http:
//
www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http:
//
www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http:
//
www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
"
>
<!--
使用注解支持事务
-->
<
tx:annotation
-
driven transaction
-
manager
=
"
transactionManager
"
/>
<!--
添加jdbc的任务管理器
-->
<
bean id
=
"
transactionManager
"
class
=
"
org.springframework.jdbc.datasource.DataSourceTransactionManager
"
>
<
property name
=
"
dataSource
"
ref
=
"
dataSource
"
></
property
>
</
bean
>
<
bean id
=
"
dataSource
"
class
=
"
com.mchange.v2.c3p0.ComboPooledDataSource
"
>
<
property name
=
"
driverClass
"
value
=
"
com.mysql.jdbc.Driver
"
/>
<
property name
=
"
jdbcUrl
"
value
=
"
jdbc:mysql:///mydb
"
/>
<
property name
=
"
properties
"
>
<
props
>
<
prop key
=
"
user
"
>
root
</
prop
>
<
prop key
=
"
password
"
>
root
</
prop
>
</
props
>
</
property
>
</
bean
>
<
bean id
=
"
simpleJdbcTemplate
"
class
=
"
org.springframework.jdbc.core.simple.SimpleJdbcTemplate
"
>
<
constructor
-
arg ref
=
"
dataSource
"
></
constructor
-
arg
>
</
bean
>
<!--
在使用事务时不能配置jdbc模板,只能配置数据流
-->
<
bean id
=
"
userdao
"
class
=
"
com.yjw.dao.UserDao
"
>
<
property name
=
"
dataSource
"
ref
=
"
dataSource
"
></
property
>
</
bean
>
<
bean id
=
"
userService
"
class
=
"
com.yjw.service.UserService
"
>
<!--
name的值只和set方法后面的有关,要一样
-->
<
property name
=
"
dao
"
ref
=
"
userdao
"
></
property
>
</
bean
>
</
beans
>
在service里加:
//
在类的头上加上这个注解,代表这个类的所有方法都加上了事务,
//
作用是某个方法里的代码要么都执行,要么都不执行
//
默认是在发生RunTimeException是才回滚,发生Exception不回滚
//
加上(rollbackFor=Exception.class)表示所有的异常都回滚
@Transactional(rollbackFor
=
Exception.
class
)
public
class
UserService
{
private
UserDao userdao;
public
void
setDao(UserDao userdao)
{
this
.userdao
=
userdao;
}
public
void
save(User user)
{
userdao.save(user);
}
//
只读,会使性能提高,推荐使用
@Transactional(readOnly
=
true
)
public
User findById(
int
id)
{
return
userdao.findById(id);
}
}
posted on 2012-05-03 22:16
杨军威
阅读(2964)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计
随笔 - 391
文章 - 34
评论 - 20
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
2021年9月 (1)
2021年6月 (1)
2021年4月 (1)
2021年1月 (1)
2020年12月 (1)
2020年11月 (2)
2020年10月 (1)
2020年8月 (2)
2020年7月 (2)
2020年5月 (1)
2020年4月 (7)
2020年3月 (4)
2019年11月 (1)
2019年6月 (1)
2019年2月 (1)
2018年11月 (2)
2018年8月 (1)
2018年7月 (1)
2018年6月 (1)
2018年5月 (8)
2018年4月 (3)
2018年3月 (10)
2018年2月 (5)
2018年1月 (5)
2017年12月 (12)
2017年11月 (7)
2017年9月 (13)
2017年8月 (13)
2017年7月 (10)
2017年6月 (2)
2017年3月 (3)
2017年2月 (5)
2016年9月 (2)
2016年8月 (2)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (1)
2014年12月 (6)
2013年11月 (1)
2013年9月 (4)
2013年8月 (16)
2013年7月 (6)
2013年6月 (27)
2013年5月 (21)
2013年4月 (48)
2013年3月 (61)
2013年2月 (11)
2013年1月 (33)
2012年12月 (19)
2012年11月 (8)
2012年10月 (2)
2012年9月 (2)
2012年5月 (6)
2012年4月 (4)
2011年11月 (8)
搜索
最新评论
1. re: Form 表单域与 Java 对象属性的自动装配功能[未登录]
没排版,看着好累
--alex
2. re: struts2实现登录拦截器和验证方法
嗯嗯
--嗯嗯
3. re: 用struts2给的jar包解析json
阿斯顿发送到
--阿斯蒂芬
4. re: ApplicationContextAware接口的作用
解决
--解决
5. re: jfinal拦截器笔记5[未登录]
2132
--123
阅读排行榜
1. ApplicationContextAware接口的作用(37183)
2. svn使用(12293)
3. git 解决 unable to get local issuer certificate 问题(10163)
4. jfinal拦截器笔记5(8685)
5. $.cookie的用法(8165)
评论排行榜
1. struts2实现登录拦截器和验证方法(5)
2. jquery阻止表单提交(3)
3. jfinal笔记1(2)
4. extjs和highcharts整合显示数据曲线和打印图片(2)
5. XPath解析,写入,修改xml文件(1)
Powered by:
BlogJava
Copyright © 杨军威