- 浏览: 174871 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
yinvent:
谢谢,终于找到一个可以用的例子!
struts2学习之一简单范例 -
锅巴49:
学习了,不错.
使用 Spring 2.5 注释驱动的 IoC 功能 -
fooky:
你好,今天在配置spring secutiry3,想让系统先从 ...
spring security 配置文件小结(逐步深化到url级别) -
lj508:
你好啊 请教你个问题
我用那个纯jsp上传时
怎么运行时根本没 ...
Sturt2学习之十二---文件上传 -
641216927:
我还是一个struts2新手。
有个问题请教一下:
同时在t ...
struts2学习之一简单范例
采用编程式事务
程序示例:
1、以前单个事物的控制
1)HibernateUtils 工具类
package com.bjsxt.usermgr.util; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtils { private static SessionFactory factory; static { try { Configuration cfg = new Configuration().configure(); factory = cfg.buildSessionFactory(); }catch(Exception e) { e.printStackTrace(); } } public static SessionFactory getSessionFactory() { return factory; } public static Session getSession() { return factory.openSession(); } public static void closeSession(Session session) { if (session != null) { if (session.isOpen()) { session.close(); } } } }
2)UserManagerImpl 单个user存储中使用事务
package com.bjsxt.usermgr.manager; import java.util.Date; import org.hibernate.Session; import com.bjsxt.usermgr.model.Log; import com.bjsxt.usermgr.model.User; import com.bjsxt.usermgr.util.HibernateUtils; public class UserManagerImpl implements UserManager { public void addUser(User user) { Session session = null; try { session = HibernateUtils.getSession(); //session = HibernateUtils.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.save(user); Log log = new Log(); log.setType("安全日志"); log.setDetail("xxx进入系统"); log.setTime(new Date()); LogManager logManager = new LogManagerImpl(); logManager.addLog(log); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } }
2、现在需要对保存用户和日志当作一个事务同时处理
按以前的方法,我在保存日志时需要把user的当前session也一起传递过去
现在hebernater3.0以后可以用以下方法:
package com.bjsxt.usermgr.manager; import java.util.Date; import org.hibernate.Session; import com.bjsxt.usermgr.model.Log; import com.bjsxt.usermgr.model.User; import com.bjsxt.usermgr.util.HibernateUtils; public class UserManagerImpl implements UserManager { public void addUser(User user) { Session session = null; try { //session = HibernateUtils.getSession(); session = HibernateUtils.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.save(user); //事物有效性测试,制造异常:Integer.parseInt("asdfsdfsfsd"); Log log = new Log(); log.setType("安全日志"); log.setDetail("xxx进入系统"); log.setTime(new Date()); LogManager logManager = new LogManagerImpl(); logManager.addLog(log); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); // }finally { // HibernateUtils.closeSession(session); } } }
3、以上代码中getCurrentSession()与openSession()的区别?
* 采用getCurrentSession()创建的session会绑定到当前线程中,而采用openSession()
创建的session则不会
* 采用getCurrentSession()创建的session在commit或rollback时会自动关闭,而采用openSession()
创建的session必须手动关闭
4、使用getCurrentSession()需要在hibernate.cfg.xml文件中加入如下配置:
* 如果使用的是本地事务(jdbc事务)--->即只有一种数据库的情形
<property name="hibernate.current_session_context_class">thread</property>
* 如果使用的是全局事务(jta事务)----->即即有多个数据库或还有资源文件,需要将配置文件改为
<property name="hibernate.current_session_context_class">jta</property>
- spring_hibernate_1.rar (13.9 KB)
- 下载次数: 9
发表评论
-
使用 Spring 2.5 注释驱动的 IoC 功能
2010-08-04 11:04 1239级别: 初级 转自http://www.ibm.com/dev ... -
使用 Spring 2.5 基于注解驱动的 Spring MVC
2010-08-04 11:00 1126转自http://www.ibm.com/developerw ... -
spring security 学习 续一
2009-08-21 15:08 5098六、为了使用MD5对密码加密,我们需要修改一下配置文件。 ... -
spring security 配置文件小结(逐步深化到url级别)
2009-08-20 17:39 9177一 、方式一:用户名密码都在配置文件中。 <?x ... -
spring2.5+strut2.0+hibernate3.3集成
2009-08-15 16:15 1261一、准备jar包,见附件。 二、分布集成 1、先集成spr ... -
ssh或S2sh中因延迟加载出现问题解决方案
2009-08-15 15:29 1057解决方案:在web.xml中加入以下代码 使用spr ... -
S2SH或ssh中乱码问题解决方法一
2009-08-15 15:23 1111在web.xml中添加以下配置 <filter> ... -
Spring+JDBC集成学习笔记(可参考ppt附件38-46页)
2009-08-15 14:25 1912使用Spring+JDBC集成步骤如下 ... -
spring小结之配置二级缓存!
2009-08-15 13:36 1833一、spring二级缓存主要分为三步,可以参考附件程序理解: ... -
Spring和Struts和Hibernate集成
2009-03-31 11:53 7911、见附件 由于附件最大不超过10M 所以部分lib单独打包了 ... -
spring与struts集成方案二
2009-03-31 11:31 1084spring+struts的集成(第二种集成方案)一、原理 将 ... -
Spring与Struts集成_第一种方案摘录
2009-03-30 13:38 1048一、原理: 在Action中取得BeanFactory对象,然 ... -
Spring学习笔记之九--声明式事务
2009-03-30 10:02 1018一、事务的传播特性: 前六个是标准的,在.net中也有,后面 ... -
spring学习之七“AOP使用spring静态配置文件(CGLIB)”
2009-03-29 16:21 2880一、spring对AOP的支持(在JDK动态代理和CGLIB之 ... -
spring学习之六“AOP使用spring静态配置文件的实现”
2009-03-29 15:58 1138一、spring(采用配置文件的方式)对AOP实现 1、sp ... -
spring学习之五“AOP概念及使用Annotation的实现”
2009-03-27 15:14 1049一、静态代理 参见代码 二、动态代理 参 ... -
spring学习之四“自动装配”
2009-03-27 14:46 909一。根据名字自动装配: 前提一、设置default-auto ... -
Spring学习笔记之三“scope” --bean范围
2009-03-27 14:37 1524三、spring Bean的作用域: scope可以取值: ... -
Spring学习笔记之二“属性注入”
2009-03-27 14:15 975参见附件代码理解下文(附件中有更加详细的注解)一、普通的属性注 ... -
Spring学习笔记之一“why spring”
2009-03-27 09:54 911一、spring概述 2、在使用spring前 ...
相关推荐
**Hibernate编程式事务管理** Hibernate作为流行的ORM(对象关系映射)框架,提供了对JDBC事务的封装。编程式事务管理允许开发者手动控制事务的边界。以下是一些关键概念: 1. **Session**: Hibernate的核心接口,...
本文将深入探讨如何将Spring与Hibernate进行集成,并重点介绍声明式事务的配置与使用。 Spring框架是一个全面的企业级应用开发框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,简化了Java应用的复杂性。另...
在本篇“Spring学习笔记(十五)——编程式事务例子”中,我们将深入探讨Spring框架中的编程式事务管理。在实际开发中,我们通常使用声明式事务管理,它基于AOP(面向切面编程)来简化事务处理。然而,有时为了更细...
5. **事务管理**: Spring支持编程式和声明式事务管理。在Hibernate4中,声明式事务管理通常通过`@Transactional`注解实现,它会由Spring的事务代理处理事务的开始、提交或回滚。 6. **实体映射**: Hibernate使用ORM...
Spring框架是Java企业级应用开发的基石,它提供了一个全面的基础设施,涵盖了依赖注入、AOP(面向切面编程)、事务管理、数据访问等核心功能。在本项目中,Spring将被用来管理JSF和Hibernate的依赖关系,以及处理...
- `spring-tx-5.2.6.RELEASE.jar`:事务管理服务,支持编程式和声明式事务处理。 - `spring-web-5.2.6.RELEASE.jar` 和 `spring-webmvc-5.2.6.RELEASE.jar`:Web相关的模块,分别对应基础Web支持和MVC框架。 每个...
首先,Spring提供了两种主要的事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理是通过编程的方式来控制事务的开始、提交、回滚等操作,通常使用`TransactionTemplate`或直接调用`...
Mina作为一个高效的网络通信框架,Spring作为全栈式框架,而Hibernate则是主流的对象关系映射(ORM)框架。将这三个框架进行整合,可以构建出高效、灵活且易于维护的企业级应用。以下将详细介绍Mina、Spring和...
在JSF-Spring-Hibernate整合开发中,Spring作为整体架构的胶水,负责管理JSF组件的生命周期和事务,同时通过其数据源和Hibernate SessionFactory的管理,实现了数据库操作的透明化。JSF处理用户界面的交互,Spring...
Spring还支持数据访问、事务管理、任务调度等多种功能,为整个应用程序提供了一站式解决方案。 **SpringMVC** SpringMVC是Spring框架的一部分,专门用于构建Web应用程序。它遵循MVC设计模式,将业务逻辑(Model)、...
4. 整合Spring和Hibernate:使用Spring管理Hibernate的SessionFactory,实现数据访问层(DAO)接口,通过Spring的AOP进行事务管理。 5. 测试和调试:确保各个框架之间的协作无误,进行单元测试和集成测试,确保应用...
5. **事务管理**:Hibernate支持编程式和声明式事务管理,确保数据的一致性。 6. **缓存**:Hibernate内置了二级缓存机制,可以通过配置使用如Ehcache这样的缓存提供者,提高性能。 7. **关联映射**:包括一对一(@...
这个"struts2-spring-hibernate jar包"包含了这三个框架的最新版本,为开发者提供了一站式的解决方案,便于快速构建基于Java的Web应用程序。 Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架...
Spring是一个全面的Java企业级应用开发框架,它包含了依赖注入(DI)、面向切面编程(AOP)、事务管理等功能。Spring的IOC容器负责管理对象的生命周期和依赖关系,而AOP则允许开发者编写横切关注点,如日志、事务等...
7. **事务管理**: Spring提供了一套完善的事务管理机制,包括编程式事务管理和声明式事务管理。在Spring-Hibernate集成中,通常使用声明式事务管理,通过@Transactional注解来控制事务的边界。 8. **单元测试和整合...
1. **事务管理**:Spring提供了一种统一的事务管理方式,可以在不同数据源上进行声明式或编程式事务控制,使得事务管理更加简单且健壮。 2. **对象持久化**:通过Spring的Hibernate模板或者JPA抽象层,开发者可以...
编程式事务管理需要开发者手动编写事务开始、提交和回滚的代码,而声明式事务管理则通过配置来定义事务边界,更易于维护和使用。 Spring的`TransactionInterceptor`是声明式事务管理的一部分,它基于AOP来处理事务...
在事务管理方面,Spring 2.5进一步完善了声明式事务管理,允许开发者通过注解或XML配置来定义事务边界,减少了手动处理事务的复杂性。此外,对JDBC、Hibernate、JPA等多种持久层技术的集成,使Spring成为了数据库...