废话不多说,直接搞张图出来,大家看看就明白了、。。。。
晕这边图还不能贴上来
放到文件里吧
下面是代码,没代码怎么行........................................................
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是两个在Java Web开发中广泛使用的开源框架。Struts主要负责MVC(Model-View-Controller)架构的实现,提供控制层的功能,而Hibernate则是一个强大的对象关系映射(ORM)工具,用于简化数据库操作...
Struts2和Hibernate是两种非常重要的Java开源框架,它们在企业级Web开发中扮演着核心角色。Struts2是一款强大的MVC(Model-View-Controller)框架,它为构建基于J2EE的Web应用程序提供了结构化的支持。而Hibernate则...
Struts和Hibernate是Java开发领域中的两个重要框架,它们在构建Web应用程序时起着关键作用。这个"struts+hibernate物业管理系统"项目显然利用了这两种技术的优势,旨在为物业管理提供一个高效、稳定的管理平台。 ...
Struts和Hibernate是Java Web开发中的两个重要框架,它们在构建高效、可维护的Web应用程序时发挥着关键作用。这个“Struts+Hibernate项目”旨在为开发者提供一个学习和实践的平台,帮助他们快速理解这两种框架的集成...
本项目"11、内容管理系统(hibernate3+struts2+spring2).zip"是利用Java开发的一种典型应用,核心采用了三个主流的开源框架:Hibernate3、Struts2和Spring2,它们各自在系统架构中扮演着重要的角色。 1. Hibernate3...
在Java Web开发中,Hibernate和Struts2是两个非常重要的框架。Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作,而Struts2则是一个基于MVC(Model-View-Controller)设计模式的行动驱动框架,用于构建...
在IT行业中,开发Java Web应用时,经常使用到的两个框架是Hibernate和Struts2。这个"hibernate5.2.10+struts2.5项目开发jar包"集合了这两个框架的特定版本,为开发者提供了一个基础的开发环境。下面我们将详细探讨...
在这个图书管理系统中,Struts定义了控制器,接收用户请求,调用模型中的业务逻辑,并将结果返回给视图进行展示。通过配置Action和ActionMapping,可以实现URL到具体处理方法的映射,实现页面跳转和数据传递。 ...
Struts和Hibernate是两种在Java Web开发中广泛使用的开源框架,它们共同构成了许多企业级应用的基础。本系统是一个基于Struts和Hibernate的学生管理信息系统,专为初学者设计,旨在帮助他们理解和掌握这两种技术的...
Spring4.0+Hibernate4.0+Struts2.3整合案例:实现增删改查。 ===================== application.xml: xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
在"内容管理系统(hibernate3+struts2+spring2)"中,这些框架的集成有以下关键点: - **Spring整合Hibernate**:Spring通过其JDBC抽象层和HibernateTemplate/SessionFactoryBean,使得配置和管理Hibernate变得简单。...
书中会详细讲述如何配置这些框架,使它们协同工作,包括Spring与Hibernate的事务管理、数据源配置、以及Struts2与Spring的整合等。 除此之外,书中还可能涵盖了单元测试、异常处理、安全性配置等方面的内容,这些都...
事务管理方面,Hibernate与Spring的集成更加紧密,使得在Spring环境中配置和使用Hibernate更加便捷。 **Struts2.5** Struts2.5是Struts框架的一个重要更新,提供了更高的稳定性和性能。它增强了对Java EE 7的支持,...
- **开发步骤**:在项目中引入Spring框架,主要是为了实现依赖注入、AOP(面向切面编程)以及事务管理。首先,需定义Service层和DAO层的接口和实现类,然后在Spring配置文件中注册这些bean,并进行依赖注入。此外,...
在Struts中,Model代表业务逻辑,View负责展示,Controller处理用户请求并协调Model和View。Struts1使用ActionForm对象来接收和验证用户输入,而在Struts2中,可以直接使用Plain Old Java Object (POJO)作为控制器,...
在Struts中,Controller部分由ActionServlet负责,它处理HTTP请求,并调用相应的Action来执行业务逻辑。Action与视图之间的交互通过ActionForm对象进行数据传递。此外,Struts还提供了配置文件(struts-config.xml)...
在这个项目中,Spring主要负责管理对象(包括Hibernate和Struts2中的组件),以及提供事务管理。核心概念包括IoC容器、Bean配置(beans.xml)、AOP代理、数据源和事务管理器。 4. **整合过程**: - 配置Spring:...
Struts2、Spring4和Hibernate是Java开发中的三大框架,它们在构建企业级Web应用程序时起着核心作用。本教程将深入探讨这三个框架如何协同工作,以实现高效、灵活和可扩展的电子商务平台。 首先,Struts2是一个基于...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...
编程式事务管理需要在代码中显式调用开始、提交、回滚等事务操作,而声明式事务管理则通过AOP(面向切面编程)来实现,只需在方法或类级别上进行配置,无需在业务逻辑代码中插入事务管理代码,降低了代码的耦合度。...