事务注解说明
@Transactional 类事务说明机制
@Transactional(noRollbackFor=RuntimeException.class) 方法事务说明
@TRacsactional(RollbackFor=Exception.class)
@Tracsactional(readOnly=true);
@Tracsactional(timeout=100)
@Tracsactional(isolation)数据库的隔离级别
{
Read Uncommited:读取未提交的数据(会出现脏读 不可重复读 幻读)
Read Cimmited:读已提交的数据(会出现不可重复读和幻读)
Repeatable Read:可重复读(会出现幻读)
Serializable:串行化
}
information
{
脏读:一个事物读取到另外一个事物未提交的更新的数据
不可重复读:在同一个事物中,多次读取同一个数据返回结果有所不同 就是后续的读取可以读到另外一个事物的已经提交的更新数据
可重复读:在同一个事物多次读取数据时 能够保证所读取数据一样 也就是后读取的不能读到另外一个事物已经提交的数据
幻读:一个事物读取到另外一个事物已经提交的更新的数据
}
针对查询方法
@Transactional(propagation=Propagation.NOT_SUPPORTED)针对某个方法不开启事务
@Transactional(propagation=Propagation.REQUIRED)默认的事务支持
Propagation.REQUIRED
Propagation.NOT_SUPPOKTED
Propagation.REQUIRESNEW
propagation.MANDATORY
Propagation.SUPPOKTS
Propagation.Never
Propagation.NESTED
XML配置事物
注解配置事物例子
public class Bean1{
@Transaction(propagation=Propagation.Required)
public void update(){
executeUpdate(SQL);
}
}
public class Bean2{
@Transaction(propagation=Propagation.Required)
public void update(){
executeUpdate(SQL);
}
}
public class TransactionExample {
@Transaction(propagation=Propagation.Required)
public void payment(){
daoBean1.update();
daoBean2.update();
}
}
//事务传播属性
@Transactional(propagation=Propagation.REQUIRED) //如果有事务,那么加入事
务,没有的话新建一个(不写的情况下)
@Transactional(propagation=Propagation.NOT_SUPPORTED) //容器不为这个方法
开启事务
@Transactional(propagation=Propagation.REQUIRES_NEW) //不管是否存在事务,
都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
@Transactional(propagation=Propagation.MANDATORY) //必须在一个已有的事务中
执行,否则抛出异常
@Transactional(propagation=Propagation.NEVER) //必须在一个没有的事务中执
行,否则抛出异常(与Propagation.MANDATORY相反)
@Transactional(propagation=Propagation.SUPPORTS) //如果其他bean调用这个方
法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.
/*public void methodName(){
update();//本类的修改方法 1
otherBean.update();//调用其他类的修改方法
update();//本类的修改方法 2
}
other失败了不会影响 本类的修改提交成功
本类update的失败,other也失败
*/
@Transactional(propagation=Propagation.NESTED)
@Transactional (propagation =
Propagation.REQUIRED,readOnly=true) //readOnly=true只读,不能更新,删除
@Transactional (propagation = Propagation.REQUIRED,timeout=30)//设置超时时间
@Transactional (propagation =
Propagation.REQUIRED,isolation=Isolation.DEFAULT)//设置数据库隔离级别
相关推荐
Spring+Hibernate注解声明式事务实例
"图书管理系统(struts+hibernate+spring)130225.rar" 是一个针对计算机专业学生、教师以及图书馆管理员设计的基于Java服务器页面(JSP)的应用程序源码包。该资料包采用了Struts框架来管理Web层的请求与响应,...
spring4.0+spring MVC4.0+hibernate4.3框架整合测试案例,支持事务,全注解,配置清晰,基础BaseDao接口实现都已写好,MVC分层,含所有需要的jar包,数据库文件。
spring3hibernate4注解式事务管理
spring mvc hibernate 实现事务管理 jar包管理用maven,启动服务器用jetty,里边还有memcached数据库,但是本例子没有用到。
两个项目,一个项目是基于spring jdbc实现的分布式事务,一个是基于spring hibernate的分布式事务,hibernate项目里的applicationContext2.xml是基于mysql和mssql, applicationContext3.xml基于两个mssql, ...
spring3hibernate4注解是事务管理
spring整合hibernate实现事务处理 1.spring整合hibernate实现事务处理-注解方式 2.spring整合hibernate实现事务处理-XML方式
最新SSH(springmvc4.0+spring4.0+hibernate4.3.4)全注解整合增删改查示例 C3PO数据库连接池,代理事务 初来乍到,不到位的地方还请大家多给给宝贵的意见,不明白的地方随时Q我 21990226,错误的地方狠狠指出 供稿-...
# 事务的织入: 开发时不必再处理SessionFactory、Session等, 只要按配置文件指定的格式对方法进行命名, 即可自动开启/提交事务; # 做了BaseDao的简单封装, 并做了基于BaseDao的增/删/改/查/分页查询等操作的示例(并...
Spring将事务管理分成了两类: * 编程式事务管理 * 手动编写代码进行事务管理.(很少使用) * 声明式事务管理: * 基于TransactionProxyFactoryBean的方式.(很少使用) * 需要为每个进行事务管理的类,配置一个...
通过注解配置的完整搭建框架 各种事务是通过spring自动管理不需要手动开启关闭事务
spring+struts2+hibernate 整合 注解 留言板 事务
1 此系统采用了目前最流行的ssm框架,其中的spingMVC框架相对于struts2框架更灵活,更安全。 2 本项目springMVC框架采用了注解映射器,使用了...5 spring容器内部使用拦截器,以Spring AOP的方式实现事务控制管理。
该项目提供了基于Spring的Java EE 5编程模型的实现,包括支持用于注入(injection)、拦截( interception)和事务处理(transactions)的JSR-250注解和EJB 3注解(JSR-220)。 在2.5版本中,Spring框架的核心(core)...
Wicket6.0_Spring3.1_Hibernate4.1_EJB全注解实例。采用JTA事务管理,在glassfish3.1.2和postgresql9测试通过。参考网上的资料整理。
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <value>com.org.entity</value> <prop key="hibernate....
框架配置较为全面,事务,切面,各种拦截器,且都为注解式开发模式,可应用在实际项目中,如有问题,加群:428476908,此为初始版本,如果有机会,会完善前台
集成了Spring 3.2.2 Hibernate 3.3.2 Struts 2.3.4 用JPA的注解实现orm 不用创建数据库表 只需本机上有oracle即可 用JSR注解进行Spring的依赖注入 用Spring Test整合Junit4 进行测试并自动事务回滚 不对数据库造成...
1.10 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。 1.11 在spring中获取代理对象代理的目标对象工具类 1.12 如何为spring代理类设置属性值 1.13 我对SpringDAO层支持...