`

hibernate配置文件及连接池配置

阅读更多
hibernate.cfg.xml配置文件的配置:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
 
 <session-factory>
  <!-- 数据库链接 -->
  <property name="connection.url">url</property>
  <!-- 是否设置连接编码 -->
  <property name="connection.useUnicode">true</property>
  <!-- 设置连接编码 -->
  <property name="connection.characterEncoding">UTF-8</property>
  <!-- 用户名 -->
  <property name="connection.username">user</property>
  <!-- 密码 -->
  <property name="connection.password">pass</property>
  <!-- 驱动 -->
  <property name="connection.driver_class">Driver</property>
  <!-- 数据库方言 -->
  <property name="dialect">dialect</property>
  <!-- 是否打印sql语句 -->
  <property name="show_sql">false</property>
  <!-- 打印sql语句时是否格式化为格式良好的 -->
  <property name="format_sql">false</property>
  <!-- hibernate默认连接池最大上限 -->
  <property name="hibernate.connection.pool_size">100</property>
  
  <!-- Hibernate Reference Documentation 3.3.1解释如下: -->
  <!-- Automatically validate or export schema DDL to the database when the SessionFactory is created. -->
  <!-- With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly. -->
  <!-- eg. validate | update | create | create-drop -->
  
  <!-- 其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none"。 -->
  <!-- create: -->
  <!-- 每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。 -->
  <!-- create-drop : -->
  <!-- 每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。 -->
  <!-- update: -->
  <!-- 最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。 -->
  <!-- validate : -->
  <!-- 每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。 -->
  <property name="hibernate.hbm2ddl.auto" value="update" />
 
  <!-- 连接断开问题 如果连接闲置8小时 (8小时内没有进行数据库操作), mysql就会自动断开连接, 要重启tomcat.-->
  <property name="connection.is-connection-validation-required">true</property>
  <property name="connection.autoReconnect">true</property>
  <property name="connection.autoReconnectForPools">true</property>
  <!-- c3p0连接池 -->
  <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
  <property name="hibernate.c3p0.min_size">2</property>
  <property name="hibernate.c3p0.max_size">20</property>
  <property name="hibernate.c3p0.timeout">43200</property>
  <property name="hibernate.c3p0.max_statements">100</property>
  <property name="hibernate.c3p0.idle_test_period">1200</property>
  <property name="hibernate.c3p0.acquire_increment">2</property>
  <property name="hibernate.c3p0.validate">true</property>
  
  <!-- (A)proxool方式配置连接池,连接池的参数要看proxoolConf.xml配置文件
  <property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
  <property name="hibernate.proxool.pool_alias">proxoolPool</property>
  <property name="hibernate.proxool.xml">proxoolConf.xml</property>
  -->
 
  <!--  (B)JNDI方式的Hibernate连接池配置,需要配置tomcat下context.xml,项目下的web.xml
  <property name="connection.datasource">java:comp/env/jdbc/zhang</property>
  -->
  
 </session-factory>
 
</hibernate-configuration>
 
proxoolConf.xml配置文件的配置,与hibernate.cfg.xml配置文件中(A)对应,该配置文件主要用于配置proxool连接池:
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
 <proxool>
  <!--连接池的别名 -->
  <alias>DBPool</alias>
  <!-- proxool只能管理由自己产生的连接 -->
  <driver-url>url</driver-url>    
  <!-- JDBC驱动程序 -->
  <driver-class>Driver</driver-class>
  <driver-properties>
   <property name="user" value="" />
   <property name="password" value="" />
  </driver-properties>
  <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 -->
  <house-keeping-sleep-time>90000</house-keeping-sleep-time>
  <!-- 最少保持的空闲连接数 -->
  <prototype-count>5</prototype-count>
  <!-- 最小连接数 -->
  <minimum-connection-count>10</minimum-connection-count>
  <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 -->
  <maximum-connection-count>100</maximum-connection-count>
  <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 -->
  <maximum-new-connections>20</maximum-new-connections>
 </proxool>
</something-else-entirely>
 
context.xml配置文件的配置,与hibernate.cfg.xml配置文件中(B)对应,该配置文件为tomcat下的配置文件,主要用于配置JNDI方式的连接池:
<?xml version='1.0' encoding='utf-8'?>
<Context>
 
    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
 <Loader delegate="true" />
    
 <Resource 
      maxIdle="100"
      maxActive="100"
      password="root"
      username="root"
      url="jdbc:mysql://localhost:3306/test"
      driverClassName="com.mysql.jdbc.Driver"
      type="javax.sql.DataSource"
      auth="Container"
      name="jdbc/zhang"/>
</Context>
 
web.xml配置文件的配置,与hibernate.cfg.xml配置文件中(B)对应,该配置文件为项目下的web.xml文件,主要用于配置JNDI方式的连接池,与context.xml一起使用:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
 
 <resource-ref>
  <res-ref-name>jdbc/zhang</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>
 
</web-app>
 
后记:c3p0和proxool都需要第三方jar包,c3p0-0.9.1.jar和proxool-0.9.1.jar,JNDI数据库连接池依赖于tomcat容器,所以测试的时候需要部署项目测试。
分享到:
评论

相关推荐

    在Hibernate中配置Proxool连接池

    在上述配置中,我们通过`hibernate.proxool.properties`指定了Proxool的配置文件路径,`hibernate.proxool.pool_alias`设置了连接池的别名,这个别名需要与Proxool配置文件中的alias一致。 接下来,我们需要创建...

    hibernate配置数据库连接池的三种方法

    数据库连接池是应用程序管理和维护数据库...总的来说,合理配置和使用数据库连接池是优化Hibernate应用性能的关键步骤之一,它有助于提升系统整体的运行效率,减少资源浪费,同时也便于监控和管理数据库连接的状态。

    hibernate配置连接池大全

    四、其他连接池配置 除了Proxool,还有许多优秀的连接池实现,如: 1. C3P0:配置项以`hibernate.c3p0.`开头,如`hibernate.c3p0.min_size`、`hibernate.c3p0.max_size`等。 2. DBCP:Apache的另一个连接池实现,...

    hibernate配置连接池整理

    **标题:“Hibernate配置连接池整理”** 在Java开发中,数据访问层的性能优化往往离不开高效的数据连接管理,而连接池就是实现这一目标的关键技术。Hibernate作为一款强大的对象关系映射(ORM)框架,它提供了与...

    hibernate 连接池配置详解

    ### Hibernate 连接池配置详解 #### 一、概述 在使用Hibernate进行数据库操作时,合理配置连接池是非常重要的一步。连接池可以帮助我们更高效地管理数据库连接资源,避免频繁创建与销毁数据库连接带来的性能开销。...

    hibernate 配置 C3P0 连接池

    接下来,我们将详细介绍如何在Hibernate中配置C3P0连接池,包括配置文件的修改以及关键参数的解释。 首先,在`hibernate.cfg.xml`或`hibernate.properties`文件中,我们需要指定使用C3P0作为连接池提供者。具体做法...

    Hibernate 中配置C3P0连接池

    **2.1 配置文件** C3P0的配置通常有两种方式,通过`hibernate.properties`或`hibernate.cfg.xml`文件。在`hibernate.properties`中,你需要定义一系列以`hibernate.c3p0.`开头的属性,例如: ``` hibernate....

    Hibernate2和Hibernate3连接池配置.doc

    《Hibernate2与Hibernate3连接池配置详解》 在Java的持久层框架中,Hibernate是一个广泛使用的ORM(对象关系映射)工具,它允许开发者将数据库操作转化为对Java对象的操作,极大地提高了开发效率。然而,为了优化...

    hibernate连接池

    本篇文章将详细介绍Hibernate支持的四种常用连接池及其配置。 1. **C3P0连接池**: C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Hibernate中配置C3P0,需要在`...

    连接池hibernate配置

    在Java的Web开发中,数据库连接管理是性能优化的关键环节之一。"连接池Hibernate配置"这一主题涉及到如何高效地管理数据库...通过阅读和分析这些文件,可以提升对Hibernate和连接池配置的理解,进一步提升开发技能。

    hibernate的查询方式介绍和hibernate的批处理和连接池配置hibernate

    ### Hibernate 查询方式与批处理及连接池配置详解 #### 一、Hibernate 查询方式介绍 Hibernate 是一款优秀的 ORM(对象关系映射)框架,它能够极大地简化数据库操作,并提供多种查询方式来满足不同的业务需求。 #...

    hibernate配置连接池

    2. 配置Hibernate属性:在Hibernate的配置文件(hibernate.cfg.xml)中,需要定义连接池的相关参数。例如: ```xml &lt;property name="hibernate.connection.provider_class"&gt;org.hibernate.connection....

    hibernate配置数据库连接池的三种方法.pdf

    为了使用 C3P0 连接池,我们需要在 Hibernate 配置文件(hibernate.cfg.xml)中添加以下配置: ``` &lt;property name="hibernate.c3p0.min_size"&gt;5 &lt;property name="hibernate.c3p0.max_size"&gt;20 &lt;property name="...

    Hibernate Proxool连接池配置总结及常遇问题

    **Hibernate Proxool连接池配置详解** 在Java应用程序中,数据库连接池是管理数据库连接的一种高效方式,它可以显著提升系统性能,减少数据库资源的浪费。本文将深入探讨Hibernate与Proxool连接池的配置,以及在...

    hibernate--5.Hibernate配置文件详解

    标题"hibernate--5.Hibernate配置文件详解"暗示我们将探讨的是Hibernate 5版本的配置细节。这个版本引入了一些新特性和改进,同时也保持了对前一版本的兼容性。配置文件是Hibernate的核心部分,它定义了与数据库的...

    配置Hibernate使用Proxool连接池

    在Java的Web开发中,数据库连接管理是一个至关重要的环节,特别是在处理高并发场景时,合理的数据库连接池配置能显著提高系统性能。本篇文章将详细讲解如何配置Hibernate框架以使用Proxool连接池。 首先,我们需要...

    Hibernate与常用连接池的配置

    Apache DBCP连接池配置** Apache的DBCP是一个开源的数据库连接池,它的配置相对简单。在Hibernate中,我们可以将`hibernate.connection.pool_size`设置为DBCP的连接池大小。但DBCP已不再更新,推荐使用更现代的...

    hibernate连接池.doc

    如果由于某些原因需要使用DBCP,官方建议通过JNDI(Java Naming and Directory Interface)方式进行配置,以避免直接在Hibernate配置文件中使用。 默认情况下,Hibernate会使用一个内置的连接池。尽管简单易用,但...

    hibernate以及连接池

    在实际项目中,我们需要在Hibernate配置文件(如hibernate.cfg.xml)中启用二级缓存,并选择合适的缓存提供商。同时,针对特定的实体类,需要明确哪些属性需要缓存,可以通过注解或XML配置来实现。 总结来说,...

Global site tag (gtag.js) - Google Analytics