如何解决Struts Hibernate的整合问题

struts和Hibernate整合的一种方式(hibernate作为struts插件),把Hibernate用到的包全部放进web应用程序的lib里面,然后定义hibernate.cfg.xml,也就是插件的配置信息
首页 新闻资讯 行业资讯 如何解决Struts Hibernate的整合问题

我们今天要讨论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浅谈

12    2009-09-21 17:10:14    struts Hibernate