- 浏览: 81021 次
文章分类
最新评论
-
zhanwc:
求一份源码: zhanweichun@126.com
android瀑布流简单实现原理 -
zhanwc:
求一份源码~
android瀑布流简单实现原理 -
dou_shini8820:
vtrtbb 写道是 TimesTen 吧, 没听说过time ...
高并发下,数据库成最大问题怎么办? -
vtrtbb:
是 TimesTen 吧, 没听说过timesden另外,这个 ...
高并发下,数据库成最大问题怎么办? -
chenyingjie1001:
说的对 .还不是很全...sql这种东西 还是多写 靠感觉!
Oracle报错:不是单组分组函数
1、TransactionProxyFactoryBean <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> <bean id="TblUserDAO" class="com.angi.dao.TblUserDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!-- 声明一个 Hibernate 3 的 事务管理器供代理类自动管理事务用 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <bean id="TblUserDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <!-- 注意这个属性, 详细意义请参考Spring文档中的CGLIB部分或者本章的 10.7.2参考资料部分, 必须为 true 使用CGLIB才不用强制编写DAO接口 --> <property name="proxyTargetClass"> <value>true</value> </property> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="target"> <ref local="TblUserDAO" /> </property> <property name="transactionAttributes"> <props> <!-- 这里的方法签名可以精确到方法, 先懒惰一下全配置上 --> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> </beans> 2、TransactionInterceptor <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> <bean id="tblUserDAO" class="com.angi.dao.TblUserDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="tblUserService" class="com.angi.dao.service.TblUserService"> <property name="tblUserDAO"> <ref bean="tblUserDAO" /> </property> </bean> <!-- 声明一个 Hibernate 3 的 事务管理器供代理类自动管理事务用 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <list> <value>tblUserService</value> </list> </property> <property name="interceptorNames"> <list> <value>transactionInterceptor</value> </list> </property> </bean> <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager" ref="transactionManager" /> <property name="transactionAttributes"> <props> <!-- 这里的方法签名可以精确到方法, 先懒惰一下全配置上 --> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> </beans> 3、AOP和TX配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> <bean id="tblUserDAO" class="com.angi.dao.TblUserDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="tblUserService" class="com.angi.dao.service.TblUserService"> <property name="tblUserDAO"> <ref bean="tblUserDAO" /> </property> </bean> <!-- 声明一个 Hibernate 3 的 事务管理器供代理类自动管理事务用 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <!-- 需要引入aop的命名空间 --> <aop:config> <!-- 切入点指明了在执行Service的所有方法时产生事务拦截操作 --> <aop:pointcut id="daoMethods" expression="execution(* com.angi.dao.service.TblUserService.*(..))" /> <!-- 定义了将采用何种拦截操作,这里引用到 txAdvice --> <aop:advisor advice-ref="txAdvice" pointcut-ref="daoMethods" /> </aop:config> <!-- 需要引入tx的命名空间 --> <!-- 这是事务通知操作,使用的事务管理器引用自 transactionManager --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- 指定哪些方法需要加入事务,这里懒惰一下全部加入,可以使用通配符来只加入需要的方法 --> <tx:method name="*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> </beans> 4、anotation <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <!-- 需要引入tx的命名空间 --> <tx:annotation-driven transaction-manager="transactionManager" /> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> <bean id="tblUserDAO" class="com.angi.dao.TblUserDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="tblUserService" class="com.angi.dao.service.TblUserService"> <property name="tblUserDAO"> <ref bean="tblUserDAO" /> </property> </bean> <!-- 声明一个 Hibernate3 的事务管理器供代理类自动管理事务用 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> </beans>
@Transactional public void doTransaction() { // step1 insert TblUser tblUser1 = new TblUser(); tblUser1.setId(24); tblUser1.setUsername("Angi12"); tblUser1.setPassword("Wang21"); tblUserDAO.save(tblUser1); // step2 update TblUser tblUser2 = tblUserDAO.findById(2); tblUser2.setPassword(tblUser2.getPassword() + "a"); tblUserDAO.update(tblUser2); // step3 insert TblUser tblUser = new TblUser(); tblUser.setId(23); tblUser.setUsername("Angi"); tblUser.setPassword("Wang"); tblUserDAO.save(tblUser); }
发表评论
-
Spring cache 缓存介绍
2013-08-14 12:08 1083Spring 3.1 引入了激动人心的基于注释(annot ... -
Solr和ssh的整合
2013-08-14 11:35 2773solr介绍: Solr是一个高性能,采用Ja ... -
SpringAop基础之静态代理和动态代理
2013-04-15 22:54 2707java动态代理常用于做权限控制,细粒度权限如对方法的操作 ... -
自己手写一个struts的权限拦截器Interceptor
2013-04-06 10:40 19501、新建一个类PowerInterceptor实现了Int ... -
Hibernate中怎么用存储过程?
2012-11-03 00:16 7831.在mysql中输入存储过程的代码: DELIMITER ... -
Criteria和Detachedcriteria的区别及应用
2012-08-13 16:21 867Hibernate 设计了 CriteriaSpe ... -
Struts2+hibernate+spring 整合
2012-08-03 09:18 64Spring与Struts的整合其实就是把Struts的Act ... -
MyEclipse从数据库反向生成实体类之Hibernate方式 反向工程
2012-08-01 11:39 936反向工程 逆向工程 开发项目涉及到的表太多,一个一个的写JAV ... -
ssh配置文件的流程
2012-07-26 08:55 7821.首先肯定是web.xml了,添加一个Spring的list ... -
Log4j使用总结
2012-07-24 13:32 843一、介绍 Log4j是Apache的 ... -
spring secutity 2.05的配置
2012-07-24 10:50 1041spring secutity 2.05的配置参考:http: ... -
spring @Transactional配置说明
2012-07-24 10:22 1094注:要在 Spring 中使用 @ ... -
介绍设置Session失效的几种方法
2012-07-24 10:21 576Session对象是HttpSessionState的一个实例 ...
相关推荐
在Java中,事务管理有编程式和声明式两种方式。编程式事务管理需要开发者手动编写事务开始、提交和回滚的代码,而声明式事务管理则通过配置来定义事务边界,更易于维护和使用。 Spring的`TransactionInterceptor`是...
同时,Spring的事务管理机制是其核心功能之一,支持编程式和声明式两种方式,使得开发者可以方便地控制事务的边界。 其次,Hibernate是Java领域最流行的ORM(Object-Relational Mapping)框架,它简化了数据库操作...
在`Spring_1800_Spring_Hibernate_Transaction_Annotation`这个压缩包文件中,很可能包含了使用注解方式实现Spring整合Hibernate事务处理的相关示例代码和配置文件。通过阅读和理解这些代码,你可以更好地掌握这一...
当我们需要在应用程序中进行事务管理时,Spring提供了一种声明式的方式,使得事务配置更为简洁。本篇将详细介绍如何在Spring 3和Hibernate 4中通过注解来实现声明式事务管理。 首先,我们需要在项目中引入Spring和...
总结起来,Spring和Hibernate的事务管理是企业级Java应用中的关键组件,它们提供了一种优雅的方式来处理复杂的数据库操作。理解并掌握其原理和配置,对于提升代码质量和系统稳定性具有重要意义。在阅读本文档...
Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理需要在代码中显式地调用开始、提交、回滚等事务操作,而声明式事务管理则是通过配置或注解来定义事务边界,更加简洁且易于维护。 1....
在IT行业中,尤其是在企业级应用开发中,声明式事务控制是一种常见的事务管理方式。它允许开发者通过配置,而不是代码来管理事务,使得事务处理更加简洁、易于维护。本主题聚焦于"声明式事务控制"在Spring 2.5与...
Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。其中,声明式事务管理通过注解或者XML配置实现,更为简洁且易于维护。 Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了数据库操作,...
3. **Hibernate事务配置:**在Spring中,需要配置Hibernate SessionFactory,并将其注入到需要进行数据库操作的服务中。同时,通过`PlatformTransactionManager`接口(如HibernateTransactionManager)配置事务管理...
通过Spring对Hibernate的管理,我们可以更好地控制事务、实现解耦,同时降低出错的可能性。此外,Spring的AOP支持使得事务管理更加简单,提高了代码的可测试性。在实际项目中,这种集成方式被广泛应用,是Java EE...
本实例工程展示了如何在Spring 3和Hibernate 4中使用注解进行声明式事务管理,这是一种高效且易于维护的方法。接下来,我们将详细讨论相关知识点。 1. **Spring框架**:Spring是一个全面的后端开发框架,它提供了...
在本项目中,我们需要配置Spring的事务管理器,一般有两种方式:编程式事务管理和声明式事务管理。声明式事务管理更为常见,它通过在服务层的方法上添加@Transactional注解,由Spring自动进行事务的开启、提交或回滚...
3. Spring4对Hibernate4的事务管理支持 4. 使用JUnit进行测试驱动开发 5. Eclipse集成开发环境的使用 理解并掌握这些知识点,对于任何Java后端开发者来说都至关重要,因为它们构成了现代企业级应用的基础架构。通过...
Spring框架以其强大的依赖注入和AOP(面向切面编程)功能,为事务管理提供了便捷的方式。Spring支持编程式和声明式事务管理。编程式事务管理允许我们在代码中显式地开始、提交和回滚事务,而声明式事务管理则通过在...
在Spring框架中集成和配置Hibernate事务管理是企业级Java应用中的常见实践,它能提供高效且灵活的事务处理策略。Spring作为一款强大的依赖注入(DI)和面向切面编程(AOP)容器,能够轻松地管理和协调不同数据访问...
首先,Spring4是一个全面的Java应用程序框架,它提供了一种方式来管理组件(或称为bean)之间的依赖关系,以此来实现控制反转(IoC)和面向切面编程(AOP)。Spring4还提供了对数据访问、Web应用、事务管理等的支持...
Spring AOP(面向切面编程)提供了一种声明式的方式来管理事务,让开发者无需在代码中显式处理事务。以下是如何实现: 1. **配置事务管理器**: 在Spring配置文件中定义`PlatformTransactionManager`,如`...
两个项目,一个项目是基于spring jdbc实现的分布式事务,一个是基于spring hibernate的分布式事务,hibernate项目里的applicationContext2.xml是基于mysql和mssql, applicationContext3.xml基于两个mssql, ...
Spring将事务管理分成了两类: * 编程式事务管理 * 手动编写代码进行事务管理.(很少使用) * 声明式事务管理: * 基于TransactionProxyFactoryBean的方式.(很少使用) * 需要为每个进行事务管理的类,配置一个...
3. **配置Spring**:在src/main/resources下创建applicationContext.xml文件,配置Spring的核心容器,包括Bean定义、数据源、事务管理器等。例如,使用DataSource来连接Oracle数据库,使用...