spring 管理 jdbc 事务
2014-09-27 17:27
302 查看
@Transactional 业务实现类 类名上方--这个类中的方法,执行操作前会打开事务。
默认:RuntimeException 自动回滚, 可以try catch 的异常,不会滚
方法名上方 就可以指定RuntimeException uncheck例外也不会滚 参数是noRollbackFor=RuntimeException.class
同理也可以让让 Exception check例外强制回滚 参数是 rollbackFor=Exception.class
有一些方法不需要事务控制 如 query方法,可以在方法的注解里指定参数propagation=NOT_SUPPORTED,不参与事务
一般 save update 默认都是REQUIRED 即如果已经存在事务环境则加入到事务当中,如果不存在事务环境,则新开启一个事务。
@Transactional
public class PersonServiceImpl{
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource){
this.jdbcTemplate=new JdbcTemplate(dataSource);
}
@Transactional(noRollbackFor=RuntimeException.class)
public void delete(){
jdbcTemplate.delete(1);
}
}
hibernate 中的getCurrentSession()得到的是受spring 容易管理的session,受spring事务管理。
而openSession()不受spring业务bean的事务管理
关于什么时候回滚,什么时候不会滚在spring中的设置:http://blog.csdn.net/qiutian1990/article/details/7940032
http://peng-hao1988.iteye.com/blog/1424214
事务传播特性
默认:RuntimeException 自动回滚, 可以try catch 的异常,不会滚
方法名上方 就可以指定RuntimeException uncheck例外也不会滚 参数是noRollbackFor=RuntimeException.class
同理也可以让让 Exception check例外强制回滚 参数是 rollbackFor=Exception.class
有一些方法不需要事务控制 如 query方法,可以在方法的注解里指定参数propagation=NOT_SUPPORTED,不参与事务
一般 save update 默认都是REQUIRED 即如果已经存在事务环境则加入到事务当中,如果不存在事务环境,则新开启一个事务。
@Transactional
public class PersonServiceImpl{
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource){
this.jdbcTemplate=new JdbcTemplate(dataSource);
}
@Transactional(noRollbackFor=RuntimeException.class)
public void delete(){
jdbcTemplate.delete(1);
}
}
hibernate 中的getCurrentSession()得到的是受spring 容易管理的session,受spring事务管理。
而openSession()不受spring业务bean的事务管理
关于什么时候回滚,什么时候不会滚在spring中的设置:http://blog.csdn.net/qiutian1990/article/details/7940032
http://peng-hao1988.iteye.com/blog/1424214
事务传播特性
相关文章推荐
- spring中JDBC 声明式事务管理
- 纯JDBC、Hibernate、Spring的AOP声明式事务管理小结
- spring的jdbc事务管理2
- Spring-jdbc:事务管理器的使用
- Spring集成的jdbc编码和事务管理
- 【Spring实战】—— 16 基于JDBC持久化的事务管理
- xml方式实现spring的声明式事务管理及对jdbc操作的支持
- 【Java EE 学习 52】【Spring学习第四天】【Spring与JDBC】【JdbcTemplate创建的三种方式】【Spring事务管理】【事务中使用dbutils则回滚失败!!!??】
- Spring与JDBC,事务管理
- 《Spring 2.0技术手册》 读书笔记七-Spring的DAO框架(3)-JDBC事务管理
- Spring JDBC和Hibernate混用时,如何配置事务管理
- springmvc+jdbc 声明式事务管理,适用于多种数据库框架
- 【Spring实战】—— 16 基于JDBC持久化的事务管理
- spring的jdbc事务管理和JTA有什么区别?
- 《Spring 2.0技术手册》 读书笔记七-Spring的DAO框架(3)-JDBC事务管理
- spring中JDBC 声明式事务管理
- spring数据源配置及事务管理--jdbc
- Spring中的Jdbc事务管理
- Spring混合框架(Hibernate+JDBC/iBatis)的事务管理
- 《Spring 2.0技术手册》 读书笔记七-Spring的DAO框架(3)-JDBC事务管理