Spring学习笔记(15)----使用Spring注解方式管理事务

时间:2022-05-16 15:35:09

使用Spring+JDBC集成步骤如下:

 *配置数据源,例如:

Xml代码  Spring学习笔记(15)----使用Spring注解方式管理事务
  1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
  2.             <property name="driverClassName" value="com.mysql.jdbc.Driver"/>  
  3.             <property name="url" value="jdbc:mysql://localhost:3306/test"/>  
  4.             <property name="username" value="root"/>  
  5.             <property name="password" value="123456"/>  
  6.             <!-- 连接池启动时的初始值 -->  
  7.             <property name="initialSize" value="1"/>  
  8.             <!-- 连接池的最大值 -->  
  9.             <property name="maxActive" value="100"/>  
  10.             <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->  
  11.             <property name="maxIdle" value="2"/>  
  12.             <!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->  
  13.             <property name="minIdle" value="1"/>  
  14.         </bean>  

 *配置事务,配置事务时,需要在xml配置文件中引入用于声明事务的tx命名空间,事务的配置有两种方式:注解方式和基于XML配置的方式

 

下面演示下使用Spring注解方式管理事务

首先在配置文件中配置Spring提供的事务管理器

Xml代码  Spring学习笔记(15)----使用Spring注解方式管理事务
  1. <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  2.             <!-- 指定数据源 -->  
  3.             <property name="dataSource" ref="dataSource"/>  
  4.         </bean>  

 由于会使用注解方式,因此我们要打开注解处理器,对注解进行解析

Xml代码  Spring学习笔记(15)----使用Spring注解方式管理事务
  1. <tx:annotation-driven transaction-manager="txManager"/>  

 

这样我们的配置文件配置完成,下面我们在Mysql中建立一张表,

Sql代码  Spring学习笔记(15)----使用Spring注解方式管理事务
  1. create table users  
  2. (                     
  3.  id int(11) not null auto_increment,    
  4.  username varchar(20) not null,         
  5.  primary key (id)                     
  6. )   

 

根据数据库,我们创建javabean

Java代码  Spring学习笔记(15)----使用Spring注解方式管理事务
  1. package com.szy.spring.bean;  
  2. /** 
  3.  * @author  coolszy 
  4.  * @time    Dec 6, 2009 2:13:33 PM 
  5.  */  
  6. public class User  
  7. {  
  8.     private int id;  
  9.     private String username;  
  10.     public int getId()  
  11.     {  
  12.         return id;  
  13.     }  
  14.     public void setId(int id)  
  15.     {  
  16.         this.id = id;  
  17.     }  
  18.     public String getUsername()  
  19.     {  
  20.         return username;  
  21.     }  
  22.     public void setUsername(String username)  
  23.     {  
  24.         this.username = username;  
  25.     }  
  26. }     

 

然后创建DAO接口,在DAO中提供几个方法:

Java代码  Spring学习笔记(15)----使用Spring注解方式管理事务
  1. package com.szy.spring.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.szy.spring.bean.User;  
  6.   
  7. public interface UserDAO  
  8. {  
  9.     public void save(User user);  
  10.     public void update(User user);  
  11.     Public User  getUser(int id);  
  12.     public void delete(int id);  
  13.     public List<User> getAllUsers();  
  14. }     

 

实现这个接口

 

Java代码  Spring学习笔记(15)----使用Spring注解方式管理事务
  1. package com.szy.spring.dao.impl;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.szy.spring.bean.User;  
  6. import com.szy.spring.service.UserService;  
  7.   
  8. /** 
  9.  * @author  coolszy 
  10.  * @time    Dec 6, 2009 2:19:22 PM 
  11.  */  
  12. public class UserDAOImpl implements UserDAO  
  13. {  
  14.   
  15.     public void delete(int id)  
  16.     {  
  17.   
  18.     }  
  19.   
  20.     public List<User> getAllUsers()  
  21.     {  
  22.         return null;  
  23.     }  
  24.   
  25.     public User getUser(int id)  
  26.     {  
  27.   
  28.     }  
  29.   
  30.     public void save(User user)  
  31.     {  
  32.   
  33.     }  
  34.   
  35.     public void update(User user)  
  36.     {  
  37.   
  38.     }  
  39.   
  40. }