如何解决Struts Hibernate的整合问题

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

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

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

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

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

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

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

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

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

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


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

【编辑推荐】

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

2009-03-06 14:34:31

StrutsHibernateSpring

2012-09-05 11:09:15

SELinux操作系统

2017-10-17 09:21:06

2009-06-04 10:58:15

strutshibernate分页

2010-04-29 17:46:31

Oracle死锁

2019-11-26 14:30:20

Spring循环依赖Java

2023-07-18 16:05:00

IP地址

2021-10-20 20:27:55

MySQL死锁并发

2011-08-29 10:34:00

网络安全云安全云计算

2023-10-30 18:35:47

MySQL主从延时

2021-06-06 13:05:15

前端跨域CORS

2011-03-23 14:42:47

CPU过度消耗

2010-07-16 13:52:26

telnet漏洞

2017-07-20 07:30:16

大数据数据互联网

2013-05-21 10:49:59

Windows硬件冲突

2017-09-23 22:07:24

深度学习N 体问题GAN

2017-09-28 10:40:10

深度学习多体问题多代理系统

2022-11-04 08:00:00

2022-11-11 10:22:54

前端Promise

2010-04-06 18:26:03

CentOS系统
点赞
收藏

51CTO技术栈公众号