`

实战tomcat5下hibernate3.1.2应用,采用jndi方式获取c3po连接池

阅读更多

1.配置数据源
有两种方式:全局数据源或者局部数据源。
全局数据源是所有的应用都可以使用,而局部数据源为单个应用使用。
1.1全局数据源

 

<GlobalNamingResources>
    ...

    <Resource name="jdbc/test" auth="Container"   
           type="com.mchange.v2.c3p0.ComboPooledDataSource"
           maxPoolSize="30" minPoolSize="1" initialPoolSize="5" acquireIncrement="2"
              idleConnectionTestPeriod="60" maxIdleTime="60"
              driverClass="oracle.jdbc.driver.OracleDriver"
              user="test" password="test" 
              jdbcUrl="jdbc:oracle:thin:@192.168.1.14:1521:oradb"
              factory="org.apache.naming.factory.BeanFactory"/>

    ...
  </GlobalNamingResources>

 

 

1.2局部数据源
将context.xml文件放置在F:\tomcat-5.5.25\webapps\strutsrcstudy\META-INF之下,具体配置可见<<Tomcat中数据源的配置及原理>>,我的博客中也转载了这篇文章,大家可以参考下。

 


2.配置hibernate.cfg.xml
connection.datasource是数据源配置,和上面全局数据源对应。
session_factory_name是jndi名,通过这个名字我们可以得到SessionFactory的实例。


 

...
<property name="connection.datasource">java:/comp/env/jdbc/test</property> 
<property name="session_factory_name">hibernate.session.factory</property>
...

 
3.编写HibernateUtil
这个类的主要作用是:
1.获取静态变量sessionFactory;
2.获取hibernate的session,也就是获取连接池中的连接。

...
static {
        try {
            Context ctx = new InitialContext();
            sessionFactory = (SessionFactory) ctx.lookup("hibernate.session.factory");
        } catch (Exception ex) {
            ex.printStackTrace();
            throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
        }
    }
...

 


4.编写监听器:HibernateAppListener
在应用初始化时,生成一个SessionFactory实例。
因为在单个应用的生命周期中,通常情况下SessionFactory保持一个实例即可。
这里为了提高应用的响应速度,所以采用了在应用初始化时作这个工作。

 

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.log4j.Logger;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


public class HibernateAppListener implements ServletContextListener {
 private static SessionFactory sessionFactory = null;

 
 public void contextInitialized(ServletContextEvent ce) {
  Logger logger = Logger.getLogger("HibernateAppListener");

  try {
   sessionFactory = new Configuration().configure().buildSessionFactory();

  } catch (Exception e) {
   logger.error(e);
  }
 }

 /* Application Shutdown Event */
 public void contextDestroyed(ServletContextEvent ce) {
 }
}

 

以上是个简单的说明,基本上满足配置应用的需要,有问题欢迎大家交流。

1
0
分享到:
评论

相关推荐

    hibernate3.1.2参考文档

    Hibernate 是一款强大的Java对象关系映射(ORM)框架,它简化了数据库与Java应用之间的交互,使得开发人员可以使用面向对象的方式来处理数据,而无需直接编写SQL语句。在Hibernate 3.1.2版本中,这个框架已经相当...

    Hibernate 3.1.2中文文档

    2. **配置文件(hibernate.cfg.xml)**:这是Hibernate应用的基础配置文件,包含数据库连接信息、实体类扫描路径、缓存设置等。理解和配置好这个文件是使用Hibernate的第一步。 3. **实体类(Entity)**:实体类...

    Tomcat统一配置C3P0连接池

    - **3.1.2 修改server.xml**:在`&lt;GlobalNamingResources&gt;`元素下添加C3P0数据源配置,包括数据源名称、驱动类、最大和最小连接数、获取连接的增量等参数。 - **3.1.3 修改context.xml**:在`&lt;Context&gt;`元素下添加...

    Hibernate 3.1.2Chinese.pdf

    Hibernate 是一款开放源代码的Java ORM(对象关系映射)框架,它为Java应用程序提供了一种将对象模型与数据库模型相连接的方式。通过Hibernate,开发人员可以更方便地操作数据库,减少大量手写SQL语句的工作量,并...

    Hibernate 3.1.2中文文档发布

    这个“Hibernate 3.1.2中文文档发布”提供的是该版本的详细指南,对于理解并熟练应用Hibernate具有极大的帮助。 在Hibernate 3.1.2中,包含了一系列重要的特性和改进: 1. **持久化模型**:Hibernate允许我们将...

    hibernate 3.1.2中文文档发布

    5. Criteria 查询:除了SQL查询,Hibernate还提供了Criteria API,允许开发者以对象的方式构建查询,增强了代码的可读性和可维护性。 三、Hibernate 3.1.2 版本特性 1. 改进的性能:3.1.2版本对查询优化进行了改进...

    Hibernate3.1.2中文文档.rar

    **Hibernate 3.1.2 中文文档** Hibernate 是一个开放源代码的对象关系映射(ORM)框架,它极大地简化了Java开发人员在数据库管理系统的数据持久化工作。Hibernate3.1.2版本是该框架的一个重要里程碑,提供了许多...

    hibernate3.1.2中文版学习手册.rar

    《Hibernate 3.1.2 中文版学习手册》是一本深入浅出的教程,旨在帮助读者掌握Java持久化框架Hibernate的核心技术和应用。该书以PDF格式提供,适合初学者和有一定经验的开发者进行自我学习和参考。 Hibernate是Java...

    Hibernate 3.1.2 参考手册

    **Hibernate 3.1.2**是一款非常成熟且完善的对象关系映射(Object-Relational Mapping,ORM)工具,它能帮助开发者将Java应用中的对象模型与数据库进行无缝连接,从而简化了数据访问层的开发工作。本参考手册旨在为...

    hibernate3.1.2英文文档(pdf)

    根据给定的文件信息,以下是对“hibernate3.1.2英文文档(pdf)”的知识点提炼和详细解析: ### 核心知识点:Hibernate 3.1.2 的架构、配置与基本对象关系映射 #### 引言: Hibernate 是一个开放源代码的对象关系...

    Hibernate3.1.2中文帮助(kk)

    Hibernate3.1.2中文帮助(kk) 第一次制作

    hibernate3.1.2 api

    hibernate3.1.2 api

    Hibernate 3.1.2 参考手册.pdf

    《Hibernate 3.1.2 参考手册》是一份详尽的指南,旨在帮助开发者深入理解和使用Hibernate框架。Hibernate是Java开发中的一个流行对象关系映射(ORM)工具,它简化了数据库操作,使开发者可以使用面向对象的方式来...

    Eclipse_hibernate-3.1.2_(插件

    Eclipse Hibernate 3.1.2 插件是专门为Eclipse IDE设计的一款工具,用于简化Hibernate框架的集成和开发过程。Hibernate是一个强大的Java对象关系映射(ORM)框架,它允许开发者将数据库操作抽象化,使得在Java应用...

    Hibernate3.1.2使用说明(中文)\Struts in Action(中文)\Spring开发指南

    《Hibernate3.1.2使用说明(中文)》是一本详细介绍Hibernate 3.1.2版本的中文指南,旨在帮助开发者深入理解并有效利用Hibernate这一强大的对象关系映射(ORM)框架。Hibernate允许开发者在Java应用程序中以面向对象的...

    Hibernate 3.1.2Chinese

    综上所述,《Hibernate 3.1.2Chinese》教程涵盖了Hibernate的基本概念、配置、操作以及高级特性,无论是初学者还是有经验的开发者,都能从中获取到有价值的信息,提升对ORM框架的理解和应用能力。

Global site tag (gtag.js) - Google Analytics