Spring2.0中声明式事务管理(读<spring2.0技术手册>,林信良)<o:p></o:p>
<!---->1. <!---->在mysql中创建表user<o:p></o:p>
CREATE TABLE user (<o:p></o:p>
id INT(11) NOT NULL auto_increment PRIMARY KEY,<o:p></o:p>
name VARCHAR(100) NOT NULL default '',<o:p></o:p>
age INT<o:p></o:p>
) Type = InnoDB;<o:p></o:p>
<!---->2. <!---->编写userDAO<o:p></o:p>
public class UserDAO implements IUserDAO {<o:p></o:p>
private JdbcTemplate jdbcTemplate;<o:p></o:p>
<o:p></o:p>
public void setDataSource(DataSource dataSource) {<o:p></o:p>
jdbcTemplate = new JdbcTemplate(dataSource);<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
public void insert(User user) {<o:p></o:p>
String name = user.getName();<o:p></o:p>
int age = user.getAge().intValue();<o:p></o:p>
<o:p></o:p>
jdbcTemplate.update("INSERT INTO user (name,age) " <o:p></o:p>
+ "VALUES('" + name + "'," + age + ")");<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
public User find(Integer id) {<o:p></o:p>
List rows = jdbcTemplate.queryForList(<o:p></o:p>
"SELECT * FROM user WHERE id=" + id.intValue());<o:p></o:p>
<o:p></o:p>
Iterator it = rows.iterator();<o:p></o:p>
if(it.hasNext()) {<o:p></o:p>
Map userMap = (Map) it.next();<o:p></o:p>
<o:p> </o:p>
Integer i = new Integer(userMap.get("id").toString());<o:p></o:p>
String name = userMap.get("name").toString();<o:p></o:p>
Integer age = <o:p></o:p>
new Integer(userMap.get("age").toString());<o:p></o:p>
<o:p> </o:p>
User user = new User();<o:p></o:p>
user.setId(i);<o:p></o:p>
user.setName(name);<o:p></o:p>
user.setAge(age);<o:p></o:p>
<o:p></o:p>
return user;<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
return null;<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
<!---->3. <!---->配置文件<o:p></o:p>
<?xml version="1.0" encoding="UTF-8"?> <o:p></o:p>
<beans xmlns="http://www.springframework.org/schema/beans"<o:p></o:p>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<o:p></o:p>
xmlns:aop="http://www.springframework.org/schema/aop"<o:p></o:p>
xmlns:tx="http://www.springframework.org/schema/tx"<o:p></o:p>
xsi:schemaLocation="http://www.springframework.org/schema/beans <o:p></o:p>
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd<o:p></o:p>
http://www.springframework.org/schema/aop <o:p></o:p>
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd<o:p></o:p>
http://www.springframework.org/schema/tx <o:p></o:p>
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"><o:p></o:p>
<o:p></o:p>
<bean id="dataSource" <o:p></o:p>
class="org.springframework.jdbc.datasource.DriverManagerDataSource"<o:p></o:p>
destroy-method="close"> <o:p></o:p>
<property name="driverClassName" <o:p></o:p>
value="com.mysql.jdbc.Driver"/> <o:p></o:p>
<property name="url"<o:p></o:p>
value="jdbc:mysql://localhost:3306/demo"/><o:p></o:p>
<property name="username" value="root"/> <o:p></o:p>
<property name="password" value="root"/> <o:p></o:p>
</bean> <o:p></o:p>
<o:p></o:p>
<bean id="transactionManager" <o:p></o:p>
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <o:p></o:p>
<property name="dataSource" ref="dataSource"/> <o:p></o:p>
</bean> <o:p></o:p>
<o:p></o:p>
<bean id="userDAO" <o:p></o:p>
class="onlyfun.caterpillar.UserDAO"><o:p></o:p>
<property name="dataSource" ref="dataSource"/><o:p></o:p>
</bean><o:p></o:p>
<o:p></o:p>
<tx:advice id="txAdvice" transaction-manager="transactionManager"><o:p></o:p>
<tx:attributes><o:p></o:p>
<tx:method name="insert*" propagation="REQUIRED"/><o:p></o:p>
<tx:method name="find*" read-only="true"/><o:p></o:p>
</tx:attributes><o:p></o:p>
</tx:advice><o:p></o:p>
<o:p></o:p>
<aop:config><o:p></o:p>
<aop:pointcut id="userDAOPointcut" <o:p></o:p>
expression="execution(* onlyfun.caterpillar.IUserDAO.*(..))"/> //前面*表示任意返回类型,后面表示onlyfun.caterpillar.IUserDAO中的所有方法。<o:p></o:p>
<aop:advisor advice-ref="txAdvice" pointcut-ref="userDAOPointcut"/><o:p></o:p>
</aop:config><o:p></o:p>
<o:p> </o:p>
</beans><o:p></o:p>
<!---->4. <!---->如果采用annotion 配置文件将会更简单:<o:p></o:p>
package onlyfun.caterpillar;<o:p></o:p>
<o:p> </o:p>
import java.util.Iterator;<o:p></o:p>
import java.util.List;<o:p></o:p>
import java.util.Map;<o:p></o:p>
<o:p> </o:p>
import javax.sql.DataSource;<o:p></o:p>
分享到:
相关推荐
Spring2.0技术手册_林信良PDF,非常好的学习资料
林信良著 spring2.0技术手册 《Spring 2.0技术手册》介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与...
本书介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者...
spring2.0技术手册--林信良,据spring1.0之后的又一力作,推荐学习。
本书介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者...
《spring2.0技术手册》的全部源代码。
Spring 2.0 中文参考手册,Spring 2.0 中文参考手册,Spring 2.0 中文参考手册,Spring 2.0 中文参考手册Spring 2.0 中文参考手册,
Java Spring 框架学习; 预先掌握下MVC的知识再来学习这个比较好
spring2.0技术手册 + 源代码 林信良 ,出版时间是2007 年5月
spring2.0技术手册(林信良).pdf 很经典!
第1章认识Spring 第2章Spring入门 第3章Bean、消息、事件 第4章SpringAOP 第5章JDBC、事务支持 第6章Hibernate与Spring 第7章SpringWebMVC框架 第8章View层方案、Web框架整合 第9章API封装 第10章项目:...
spring2.0中文手册及使用指南,chm格式
本书介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者...
spring声明式事务的配置 3. spring2.0配置事务 a) 将spring 1.2升级到spring2.0 i. 去掉spring1.2相关的包 ii. 添加spring2.0的jar包:spring.jar,aspecjrt.jar,aspectjweaver.jar 和cglib-nodep-2.1.3,jar iii. ...
spring2.0中文参考手册.rar spring2.0中文参考手册.rarspring2.0中文参考手册.rar
全新的spring2.0技术手册中文版,让你体验no EJB的架构。
spring 2.0中文参考手册 ,有spring的详细介绍包括很实用的定时程序和RMI远程调用程序。