如何解决Struts Hibernate的整合问题

开发 后端
struts和Hibernate整合的一种方式(hibernate作为struts插件),把Hibernate用到的包全部放进web应用程序的lib里面,然后定义hibernate.cfg.xml,也就是插件的配置信息

我们今天要讨论struts Hibernate ,下面通一实例,我们能更深刻的了解struts Hibernate的整合问题。希望本文能对大家了解有所帮助。

把Hibernate用到的包全部放进web应用程序的lib里面,然后定义hibernate.cfg.xml,也就是插件的配置信息,如下

xml version="1.0" encoding="UTF-8"?> 

                                         "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
        <property name="show_sql">falseproperty> 
        <property name="use_outer_join">trueproperty> 
        <property name="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialectproperty> 
        <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driverproperty> 
        <property name="hibernate.connection.url">jdbc:mysql:///testproperty> 
        <property name="hibernate.connection.username">rootproperty> 
        <property name="hibernate.connection.password">property> 
        <property name="hibernate.connection.pool.size">20property> 
        <property name="session_factory_name">hibernate/session_factoryproperty> 
         
    <mapping resource="/homepage/Artical.hbm.xml"/> 
 
    session-factory> 
hibernate-configuration> 
 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

信息很清楚的,就是配置数据库等信息,我们利用jndi来查找SessionFactory,下面是插件程序,

HibernatePlugIn.java  
 
import org.apache.struts.action.PlugIn;  
import org.apache.struts.action.ActionServlet;  
import org.apache.struts.config.ModuleConfig;  
import javax.servlet.ServletException;  
import javax.servlet.ServletContext;  
import net.sf.hibernate.SessionFactory;  
import net.sf.hibernate.cfg.Configuration;  
public class HibernatePlugIn  
    implements PlugIn {  
  public void destroy() {  
  }  
  public void init(ActionServlet servlet, ModuleConfig config) throws  
      ServletException {  
    try {  
      ServletContext context = servlet.getServletContext();  
      SessionFactory sf = new Configuration().configure().buildSessionFactory();  
      context.setAttribute("net.sf.hibernate.SessionFactory",sf);  
    }  
    catch (Exception ex) {  
      ex.printStackTrace();  
    }  
  }  
}  
 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.

相应的,要在struts-config.xml配置插件信息,大概如下,注意路径

<plug-in className="homepage.HibernatePlugIn"> 
    <set-property property="configFilePath" value="/WEB-INF/classes/hibernate.cfg.xml" /> 
    <set-property property="storeInServletContext" value="true" /> 
  plug-in> 
  • 1.
  • 2.
  • 3.
  • 4.

以后就可以利用java.naming.Context,java.naming.InitiaContext来查找

Context ct = new InitialContext();  
      sessions=(SessionFactory) ct.lookup("hibernate/session_factory");  
      session=sessions.openSession();  
  • 1.
  • 2.
  • 3.


当然,还有另外两种整合方式,我认为这种方法更为灵活,也比较容易掌握。以上介绍struts Hibernate。

【编辑推荐】

  1. Hibernate3.1简单描述
  2. Hibernate save基础简介
  3. 浅析Hibernate 3二级缓存基础
  4. Hibernate流行架构浅析
  5. Hibernate update浅谈
责任编辑:仲衡 来源: csdn
相关推荐

2009-03-06 14:34:31

StrutsHibernateSpring

2009-06-04 10:58:15

strutshibernate分页

2010-04-29 17:46:31

Oracle死锁

2012-09-05 11:09:15

SELinux操作系统

2021-10-20 20:27:55

MySQL死锁并发

2017-10-17 09:21:06

2024-10-29 16:41:24

SpringBoot跨域Java

2017-07-20 07:30:16

大数据数据互联网

2013-05-21 10:49:59

Windows硬件冲突

2021-01-30 19:35:44

HDFS单点Hadoop

2011-05-17 13:22:50

SQL对象名无效

2011-08-08 10:29:12

MySQL

2020-12-14 06:57:37

shell

2023-06-29 08:16:11

Spiderpool网络IPAM

2022-01-14 11:48:39

量子计算硬件技术

2022-11-11 15:49:09

前端JavaScript开发

2012-03-31 14:39:25

戴尔KACE

2018-04-09 16:00:30

Windows 10Windows更新

2009-06-05 09:52:25

struts分页Hibernate

2019-11-26 14:30:20

Spring循环依赖Java
点赞
收藏

51CTO技术栈公众号