spring声明式事务管理(注解实现)



spring事务管理分为编程式事务管理和声明式事务管理,后者又分为注解式和xml配置式,今天主要讲简单的注解式,

先看beans4.xml,这是spring配置文件,放在src源文件夹下


   
   

   
   
   	
   	
    
    
   	
   	
    
    
		
     
     
		
     
     
		
     
     
		
     
     
		
     
     
		
     
     
	
    
    	
		
    
    
	
    
    
		
     
     
	
    
    
		
    
    
		
    
    	
   	
   	
    
    
   	
    
    
   		
     
     
   	
    
    
   	
   	
    
    
   		
     
     
   	
    
    
   	
   	
    
    
   		
     
     
   	
    
    
   	
   	
   	
   	
   	
   	
   	
   	


   
   
看配置文件就知道要用哪些包,dbcp,mysql连接,spring核心包,
然后注解事务声明主要分三步,1.声明事务管理器,2.开启注解,3.类中插入注解使用
1.声明事务管理得配数据源吧,毕竟是数据操作的事务,
2.开启注解得知道为哪个事务管理器开启吧
3.这个在service里插入@Transactional即可
代码我都贴上了大家一看就懂,文章末附上这个小项目的源代码
package cn.midai.dao;
/**
 * dao类实现底层sql语句,
 * 通过spring封装JdbcTemplate实现
 * @author yym
 *
 */
import org.springframework.jdbc.core.JdbcTemplate;

public class DaoMoney {
	
	private JdbcTemplate jdbcTemplate;

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}
	
	public void lessMoney(){
		String sql="update t_bank set counts=counts-? where username=? ";
		jdbcTemplate.update(sql, 1000, "1");
		
	}
	
	public void MoreMoney(){
		String sql="update t_bank set counts=counts+? where username=? ";
		jdbcTemplate.update(sql, 1000, "2");
		
	}
	
	

}
package cn.midai.service;

import org.springframework.transaction.annotation.Transactional;

import cn.midai.dao.DaoMoney;
/**
 * service服务层实现dao层方法
 * @author yym
 *
 */
@Transactional
public class ServiceMoney {
	
	private DaoMoney daoMoney;

	public void setDaoMoney(DaoMoney daoMoney) {
		this.daoMoney = daoMoney;
	}
	
	//调用dao的方法
	public void accountMoney(){
		daoMoney.lessMoney();
		int a = 10/0;
		daoMoney.MoreMoney();
		
	}


}
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.midai.service.ServiceMoney;
/**
 * 声明事务(注解)
 * @author yym
 *
 */
public class test {
	
	/*bean.xml 声明事务管理, */
	
	public static void main(String[] args) {
		ApplicationContext ac = new ClassPathXmlApplicationContext("beans4.xml");
		ServiceMoney sm = (ServiceMoney) ac.getBean("serviceMoney");
		sm.accountMoney();
		
	
	
	}
}
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/d_spring
jdbc.username=root
jdbc.password=2017
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n



源代码源代码源代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值