本站首页    管理页面    写新日志    退出


«December 2025»
123456
78910111213
14151617181920
21222324252627
28293031


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7687026
建立时间:2006年5月29日




[Hibernate]Using Hibernate with Tomcat
软件技术

lhwork 发表于 2006/8/20 11:36:39

If you use Hibernate on Tomcat you don't have to use Tomcat's JNDI-bound JDBC connections. You can let Hibernate manage the JDBC connection pool. This works on all versions of Tomcat and is very easy to configure.First, create a hibernate.cfg.xml or hibernate.properties file, as per documentation (no, property names in cfg.xml don't have to be prefixed with "hibernate.xxx"): <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!-- Settings for a local HSQL (testing) database. --> <property name="dialect">org.hibernate.dialect.HSQLDialect</property> <property name="connection.driver_class">org.hsqldb.jdbcDriver</property> <property name="connection.url">jdbc:hsqldb:hsql://localhost</property> <property name="connection.username">sa</property> <property name="connection.password"></property> <!-- Use the C3P0 connection pool. --> <property name="c3p0.min_size">3</property> <property name="c3p0.max_size">5</property> <property name="c3p0.timeout">1800</property> <!-- Disable second-level cache. --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <property name="cache.use_query_cache">false</property> <property name="cache.use_minimal_puts">false</property> <property name="max_fetch_depth">3</property> <!-- Print SQL to stdout. --> <property name="show_sql">true</property> <property name="format_sql">true</property> <!-- Drop and then re-create schema on SessionFactory build, for testing. --> <property name="hbm2ddl.auto">create</property> <!-- Bind the getCurrentSession() method to the thread. --> <property name="current_session_context_class">thread</property> <!-- Hibernate XML mapping files --> <mapping resource="org/MyClass.hbm.xml"/> <!-- Hibernate Annotations (and package-info.java) <mapping package="org.mypackage"/> <mapping class="org.MyClass/> --> </session-factory></hibernate-configuration>Now copy this file into your WEB-INF/classes directory of your web application. Copy hibernate3.jar into your WEB-inf/lib directory and with it all required 3rd party libraries (see lib/README.txt in the Hibernate distribution). Don't forget to also copy your JDBC driver to WEB-INF/lib. Never ever copy anything in Tomcat into a global directory outside of your web application or you are in classloader hell!Start Hibernate by building a SessionFactory, as shown here with HibernateUtil.This listener initializes and closes Hibernate on deployment and undeployment, instead of the first user request hitting the application: public class HibernateListener implements ServletContextListener { public void contextInitialized(ServletContextEvent event) { HibernateUtil.getSessionFactory(); // Just call the static initializer of that class } public void contextDestroyed(ServletContextEvent event) { HibernateUtil.getSessionFactory().close(); // Free all resources }}Add it to your web.xml: <listener> <listener-class>org.mypackage.HibernateListener</listener-class></listener>


阅读全文(1848) | 回复(-1) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144812117 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号