- 浏览: 57358 次
- 来自: 北京
最新评论
-
泛泛evil:
总结的很好,谢谢分享
JavaScript -
wanxkl:
哇!总结的太好了。。凤哥哥,你好强大啊。。请问您跟凤姐什么关系 ...
css应用
事务处理
第一种方式:
首先配置datasoure:
<bean id="myDataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/punish</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>passok</value>
</property>
</bean>
第二步配置sessionFactory:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource"></property>
<!-- 定义Hibernate的Session Factory属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<!-- 列出所有的映射文件 -->
<value>com/spring/step1/pojo/Account.hbm.xml</value>
<value>com/spring/step1/pojo/Loginfo.hbm.xml</value>
</list>
</property>
</bean>
第三步;配置txManager
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
第四步定义事务拦截器bean,并注入txManager
<bean id="txInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="txManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
最后定义定义BeanPostProcessorbean
<bean id="autoProxy"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<!—把所有需要事务的bean的名字列在下面 -à
<list>
<value>transferService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>txInterceptor</value>
</list>
</property>
</bean>
第二种方式:
第零步:添加aspectj这个目录下的两个jar包
第一步改换Application Content 文件头
<?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: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-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
第二步配置datasoure:
<bean id="myDataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/punish</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>passok</value>
</property>
</bean>
第三步配置sessionFactory:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource"></property>
<!-- 定义Hibernate的Session Factory属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<!-- 列出所有的映射文件 -->
<value>com/spring/step1/pojo/Account.hbm.xml</value>
<value>com/spring/step1/pojo/Loginfo.hbm.xml</value>
</list>
</property>
</bean>
第四步配置txManager
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
第五步:
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<!-- all methods starting with 'get' are read-only -->
<tx:method name="get*" read-only="true" />
<!-- other methods use the default transaction settings (see below) -->
<tx:method name="*" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="fooServiceOperation"
expression="execution(* com.spring.step4.dao.service.impl.*.*(..))" />
<aop:advisor advice-ref="txAdvice"
pointcut-ref="fooServiceOperation" />
</aop:config>
发表评论
-
lucene3.0 例一
2012-09-11 20:18 649package com.lucene;import java. ... -
lucene3.0
2012-09-11 20:15 870全文搜索 核心:创建索引——查询索引--分词器 索引引擎: ... -
分布式存储(转载)
2012-06-05 15:42 1200L1、HTML静态化其实大家都知道,效率最高、消耗最小的 ... -
java设计原则
2012-04-05 16:50 822原则1:DRY(Don't repeat ... -
java静态、动态代理
2012-04-04 18:51 848JAVA的动态代理 代理模式 代理模式是常用的java设计模式 ... -
javascript应用3
2011-09-10 15:14 952打开一个新页面:{ <script t ... -
javascript应用2
2011-09-10 15:09 897日期插件的应用:{ <script type=& ... -
javascript应用1
2011-09-10 15:00 972javascript {<!-- 1.j ... -
css应用
2011-09-10 14:59 896CSS 本章目标 1、CSS的定义、优势 2、css的基 ... -
Html
2011-09-10 14:56 920HTML 超链接:{ <a href=”http:/ ... -
jsp、el、jstl.doc
2011-09-10 14:53 1323serlvet和jsp区别和联系 jsp从本质上讲也是s ... -
Jdbc
2011-09-10 14:49 922jdbc操作数据库插入、更新、删除、查找 mysql数据 ... -
文件上传步骤
2011-09-10 14:47 759文件上传的简单方法:(原理性的实验) 1. <b ... -
中文乱码问题解决
2011-09-10 14:43 7491. post方式提交的数据 采用request.setCha ... -
事务传播特性与隔离级别
2011-09-10 14:38 796事务传播特性了解事务的几种传播特性 ... -
监听器
2011-09-10 14:36 889监听器概述 1.Listener是Servlet的监听器 ... -
过滤器
2011-09-10 14:35 12411. Servlet过滤器基础 Servlet过滤器是Se ... -
web编程常用配置2
2011-09-10 14:35 712c3p0.jar:C3PO是一个数据库连接池,Hibern ... -
web编程常用配置1
2011-09-10 14:33 980mysql数据库jdbc驱动 jdbcDriver = co ... -
sql练习
2011-09-10 14:28 22651.oracle数据库启动的服 ...
相关推荐
在Spring中,你可以为特定的类或方法声明事务属性,如事务的传播行为、隔离级别、是否回滚等。这些配置通常在Spring的XML配置文件中完成,或者使用Java配置类进行。当一个方法被标记为@Transactional,Spring会在...
总的来说,Spring 3和Hibernate 4结合使用声明式事务管理,使得我们无需在代码中显式调用事务开始、提交和回滚,而是通过注解和配置文件来声明事务的边界和行为。这种方式降低了代码的复杂度,提高了可维护性和可...
本资源主要是结合博文 Spring+Hibernate: 声明式事务 http://blog.csdn.net/ManagementAndJava/article/details/78050519 的源代码,主要是讲解了spring4.3和hibernate5.2.11集成实现原理;
本实例将深入探讨如何结合Spring的注解声明式事务管理与Hibernate的数据访问技术,构建一个完整的事务处理系统。 Spring框架以其灵活的依赖注入(DI)和面向切面编程(AOP)闻名,它允许开发者将事务管理从业务逻辑...
2. **声明事务边界**:在需要事务控制的方法上添加@Transactional注解,指定事务的传播行为、隔离级别、读写模式等属性。 3. **创建事务代理**:对于需要事务控制的业务服务,使用TransactionProxyFactoryBean创建...
本教程将深入探讨如何在Spring框架中利用`TransactionInterceptor`进行声明式事务管理,与Hibernate集成实现高效的数据库事务控制。 首先,了解事务管理是至关重要的。事务是一组数据库操作,这些操作要么全部成功...
本项目是关于如何使用Spring MVC与Hibernate结合来实现事务管理的实践教程,通过MyEclipse自动生成所需的包和配置文件。这里将详细讲解这一过程,以及涉及到的关键知识点。 首先,Spring MVC作为Spring框架的一部分...
总结起来,Spring和Hibernate的事务处理涉及了Spring的声明式事务管理、事务的传播行为、隔离级别以及回滚规则等概念。通过整合这两者,我们可以构建高效、健壮的企业级应用程序,确保数据的完整性和一致性。了解并...
编程式事务管理需要在代码中显式调用开始、提交、回滚等事务操作,而声明式事务管理则通过在XML或注解中声明事务边界,让Spring自动进行事务管理。在大多数情况下,声明式事务管理更为推荐,因为它降低了代码的耦合...
本篇文章将详细探讨如何通过Spring整合Hibernate来实现事务处理,重点介绍注解方式和XML配置方式。 首先,我们了解事务处理在数据库操作中的重要性。事务是一组操作,这些操作要么全部成功,要么全部失败,确保数据...
在Hibernate中,事务可以通过编程式或声明式的方式进行管理。编程式事务管理通常通过Session的beginTransaction(), commit()和rollback()方法来实现。声明式事务管理则依赖于Spring等框架,通过@Transactional注解来...
在Hibernate中,事务可以通过编程式或声明式两种方式来管理。编程式事务管理通常在代码中显式地开启、提交和回滚事务,而声明式事务管理则依赖于如Spring框架这样的容器,通过AOP(面向切面编程)自动管理事务边界。...
在Spring中,通过`@Transactional`注解可以在方法级别声明事务边界。当该方法执行时,Spring会自动处理事务的开启、提交或回滚,无需开发者手动干预。 5. **配置Spring和Hibernate**:在Spring 3中,我们需要配置...
2. **Hibernate事务**: Hibernate本身也提供了一种事务管理机制,但在Spring环境中,我们通常使用Spring的事务管理器来协调。当@Transactional注解应用于方法上,Spring会在该方法执行前后自动管理事务的开始和结束...
在Spring中,我们可以使用`@Transactional`注解来声明事务。这个注解可以应用在类或方法级别,用于指定事务的传播行为、隔离级别、超时限制以及是否回滚默认异常。例如: ```java @Service @Transactional...
总结来说,Hibernate的事务处理是其强大功能的重要组成部分,它提供了编程式和声明式两种方式来管理事务,以适应不同开发场景的需求。理解并熟练运用事务处理,对于构建健壮的Java应用至关重要。在实际开发中,...
本文将深入探讨Spring与Hibernate整合时的事务管理,帮助你更好地理解和运用这些技术。 首先,Spring框架是Java企业级应用的基石,它提供了一种依赖注入(Dependency Injection,DI)的方式,使得组件之间的耦合度...
在业务服务类中,我们可以使用@Transactional注解来声明事务边界。例如: ```java @Service public class UserService { @Autowired private UserRepository userRepository; @Transactional public void ...