`
javazeke
  • 浏览: 86745 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Hibernate事务在struts中管理

阅读更多

废话不多说,直接搞张图出来,大家看看就明白了、。。。。

晕这边图还不能贴上来

 

放到文件里吧

 

下面是代码,没代码怎么行........................................................

 

HibernateUtil.java

package org.zzx.hibernate.transaction;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


@SuppressWarnings("unchecked")
public class ThreadLocalHibernate {
	
	private static SessionFactory sessionFactory;
	
	static {
		
		sessionFactory=new Configuration().configure().buildSessionFactory();
		
	}
	
	private static Session getSessionHelp(){
		
		return sessionFactory.openSession();
		
	}
	
	private static ThreadLocal threadSession=new ThreadLocal();
	
	private static Session session;

	public static Session getSession(){
		
		session=(Session)threadSession.get();
		
		if(session==null){
			
			session=getSessionHelp();
			
			threadSession.set(session);
		}
		
		return session;
	}
	
	public static void close(){
		
		if(session!=null){
			
			session.close();
			
			threadSession.set(null);
			
		}
		
	}

}

 

有了HibernateUtil还要有filter啊,不急,贴出来。。。。。

package org.zzx.hibernate.transaction;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class TransactionInView implements Filter {

	private Session hibernateSession;

	private Transaction transaction;

	public void destroy() {

	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {

		hibernateSession = ThreadLocalHibernate.getSession();

		transaction = hibernateSession.getTransaction();

		try {
			
			transaction.begin();

			chain.doFilter(request, response);

			transaction.commit();
			
		} catch (HibernateException e) {
			
			transaction.rollback();
			
			e.printStackTrace();
			
		} finally {
			
			ThreadLocalHibernate.close();
		}

	}

	public void init(FilterConfig filterConfig) throws ServletException {

	}

}

 

 

filter在web.xml是这样配置的

 

<filter>
	<filter-name>transaction</filter-name>
	<filterclass>
                       org.zzx.hibernate.transaction.TransactionInView
                </filter-class>
</filter>
<filter-mapping>
	<filter-name>transaction</filter-name>
	<url-pattern>*.do</url-pattern>
</filter-mapping>
		

 

上面的url-pattern是对所有的请求都进行过滤,这样效率会下降的,建议换成你要过滤的,也就是你要持久数据的操作时

才让这个filter过滤

 

好了基本的代码就这么多了,,剩下的,只要在业务层持久或查找数据就Ok了。这里的代码只是对session的事务这一块

做了简单的示例,不过用这种方法对session事务管理,在性能上是有风险的。这个session的事务在整个请求和回复的过程中都开着,如果用户查的数据比较大并且用户的网络不是很好的话,则Hibernate会有一级缓存会缓存数据,对服务器的内存是一种挑战,特别是好多用户并发时。

 

 

  • 大小: 122.5 KB
分享到:
评论

相关推荐

    struts+hibernate整合jar包

    Struts和Hibernate是两个在Java Web开发中广泛使用的开源框架。Struts主要负责MVC(Model-View-Controller)架构的实现,提供控制层的功能,而Hibernate则是一个强大的对象关系映射(ORM)工具,用于简化数据库操作...

    struts2与Hibernate整合

    Struts2和Hibernate是两种非常重要的Java开源框架,它们在企业级Web开发中扮演着核心角色。Struts2是一款强大的MVC(Model-View-Controller)框架,它为构建基于J2EE的Web应用程序提供了结构化的支持。而Hibernate则...

    struts+hibernate物业管理系统

    Struts和Hibernate是Java开发领域中的两个重要框架,它们在构建Web应用程序时起着关键作用。这个"struts+hibernate物业管理系统"项目显然利用了这两种技术的优势,旨在为物业管理提供一个高效、稳定的管理平台。 ...

    struts+hibernate 项目

    Struts和Hibernate是Java Web开发中的两个重要框架,它们在构建高效、可维护的Web应用程序时发挥着关键作用。这个“Struts+Hibernate项目”旨在为开发者提供一个学习和实践的平台,帮助他们快速理解这两种框架的集成...

    11、内容管理系统(hibernate3+struts2+spring2).zip

    本项目"11、内容管理系统(hibernate3+struts2+spring2).zip"是利用Java开发的一种典型应用,核心采用了三个主流的开源框架:Hibernate3、Struts2和Spring2,它们各自在系统架构中扮演着重要的角色。 1. Hibernate3...

    Hibernate与struts2结合使用的demo

    在Java Web开发中,Hibernate和Struts2是两个非常重要的框架。Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作,而Struts2则是一个基于MVC(Model-View-Controller)设计模式的行动驱动框架,用于构建...

    hibernate5.2.10+struts2.5项目开发jar包

    在IT行业中,开发Java Web应用时,经常使用到的两个框架是Hibernate和Struts2。这个"hibernate5.2.10+struts2.5项目开发jar包"集合了这两个框架的特定版本,为开发者提供了一个基础的开发环境。下面我们将详细探讨...

    图书管理系统spring+struts+hibernate

    在这个图书管理系统中,Struts定义了控制器,接收用户请求,调用模型中的业务逻辑,并将结果返回给视图进行展示。通过配置Action和ActionMapping,可以实现URL到具体处理方法的映射,实现页面跳转和数据传递。 ...

    struts+hibernate简单的学生管理信息系统的源码

    Struts和Hibernate是两种在Java Web开发中广泛使用的开源框架,它们共同构成了许多企业级应用的基础。本系统是一个基于Struts和Hibernate的学生管理信息系统,专为初学者设计,旨在帮助他们理解和掌握这两种技术的...

    Spring4.0+Hibernate4.0+Struts2.3整合案例

    Spring4.0+Hibernate4.0+Struts2.3整合案例:实现增删改查。 ===================== application.xml: xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    内容管理系统(hibernate3+struts2+spring2).rar

    在"内容管理系统(hibernate3+struts2+spring2)"中,这些框架的集成有以下关键点: - **Spring整合Hibernate**:Spring通过其JDBC抽象层和HibernateTemplate/SessionFactoryBean,使得配置和管理Hibernate变得简单。...

    spring_struts_hibernate整合开发书籍

    书中会详细讲述如何配置这些框架,使它们协同工作,包括Spring与Hibernate的事务管理、数据源配置、以及Struts2与Spring的整合等。 除此之外,书中还可能涵盖了单元测试、异常处理、安全性配置等方面的内容,这些都...

    SSH整合jar包-spring5.0+hibernate5.1+struts2.5

    事务管理方面,Hibernate与Spring的集成更加紧密,使得在Spring环境中配置和使用Hibernate更加便捷。 **Struts2.5** Struts2.5是Struts框架的一个重要更新,提供了更高的稳定性和性能。它增强了对Java EE 7的支持,...

    Struts2,Spring与Hibernate整合应用,学生成绩管理系统

    - **开发步骤**:在项目中引入Spring框架,主要是为了实现依赖注入、AOP(面向切面编程)以及事务管理。首先,需定义Service层和DAO层的接口和实现类,然后在Spring配置文件中注册这些bean,并进行依赖注入。此外,...

    struts2、hibernate框架

    在Struts中,Model代表业务逻辑,View负责展示,Controller处理用户请求并协调Model和View。Struts1使用ActionForm对象来接收和验证用户输入,而在Struts2中,可以直接使用Plain Old Java Object (POJO)作为控制器,...

    struts+hibernate做的商城

    在Struts中,Controller部分由ActionServlet负责,它处理HTTP请求,并调用相应的Action来执行业务逻辑。Action与视图之间的交互通过ActionForm对象进行数据传递。此外,Struts还提供了配置文件(struts-config.xml)...

    hibernate struts2 和spring的整合项目

    在这个项目中,Spring主要负责管理对象(包括Hibernate和Struts2中的组件),以及提供事务管理。核心概念包括IoC容器、Bean配置(beans.xml)、AOP代理、数据源和事务管理器。 4. **整合过程**: - 配置Spring:...

    struts2+spring4+hibernate

    Struts2、Spring4和Hibernate是Java开发中的三大框架,它们在构建企业级Web应用程序时起着核心作用。本教程将深入探讨这三个框架如何协同工作,以实现高效、灵活和可扩展的电子商务平台。 首先,Struts2是一个基于...

    struts2 spring hibernate整合的简单登录代码

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...

    spring,struts,hibernate,事务

    编程式事务管理需要在代码中显式调用开始、提交、回滚等事务操作,而声明式事务管理则通过AOP(面向切面编程)来实现,只需在方法或类级别上进行配置,无需在业务逻辑代码中插入事务管理代码,降低了代码的耦合度。...

Global site tag (gtag.js) - Google Analytics