`

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容器,所以测试的时候需要部署项目测试。
分享到:
评论

相关推荐

    Spring+Hibernate+Proxool连接池

    连接池配置文件 博文链接:https://yanghaiskys.iteye.com/blog/215424

    hibernate 数据库 连接池包文件 c3p0.jar

    hibernate 数据库 连接池包文件,自己找了很多网站才找到的,传到CSDN方便需要的人使用

    hibernate配置文件以及类映射文件常用写法1

    -- 配置连接池参数信息--&gt; &lt;property name="hibernate.c3p0.min_size"&gt;2&lt;/property&gt; &lt;prope

    C3P0连接池配置需要的jar包

    c3p0-0.9.2.1.jar&&hibernate-c3p0-4.0.0.Final[1].jar&&mchange-commons-java-0.2.3.4.jar

    proxool连接池用户名密码加密

    proxool 数据库连接池用户名、密码加密处理,文件里面包含可直接使用加密的jar以及相关使用说明。

    c3p0jar包及配置文件(可用)

    内容概要:c3p0连接池需要jar包.rar以及相关配置文件 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。 适合人群:正在学习...

    Hibernate配置数据源.

    置自己的测试环境,需要自己抽象整个框架,引入测试框架中,配合测试自己的测试用例。但是发现数据库连接池老出现问题,搜索问题和答案后,总结一下,备忘。

    Hibernate开发jar包

    Hibernate开发jar包 5.07 配置文件内容 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" ...

    springMVC3.2+Hibernate4的基本配置

    本文件为一个基本的项目配置,包括springmvc的基本配置,数据库连接池(c3p0)、事务管理、缓存、拦截器的配置。部分采用xml配置,部分采用注解。

    myEclipse8.5整合SSH步骤(基于操作和配置文件)

    详细介绍myEclipse/8.5中整合SSH(Spring/3.0 Struts/2.1 hibernate/3.3)步骤配图介绍操作步骤,文件配置,包括spring事物配置,hibernate数据库及连接池配置等,内容详尽,有超高参考价值。

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     19.1.2 使用配置文件指定的数据库连接池  19.1.3 从容器中获得数据源  19.1.4 由Java应用本身提供数据库连接  19.2 配置事务类型  19.3 把SessionFactory与JNDI绑定  19.4 配置日志  19.5 使用XML格式的配置...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和...

    SSH整合包及配置文件.rar

    ssh整合所需的jar包,spring-4.2.4版本,c3p0连接池,mysql数据库,hibernate-5.0.7版本,struts-2.3.24版本, spring-mvc.xml文件,web.xml文件,spring-common.xml文件,Adc.hbm.xml文件

    c3p0-config.xml

    Hibernate框架,默认推荐使用C3P0作为连接池实现,一个开源的连接池。 拷贝c3p0的jar到lib目录 (c3p0-0.9.5.2.jar , mchange-commons-java-0.2.12.jar) 把配置文件c3p0.xmla拷贝到src目录下(配置文件名一定不能修改...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和...

    struts2、hibernate、spring三大框架整合项目包

    详细示范了当前java里面流行的三大框架的整合,对于spring的配置文件applicationContext.xml做了详细的注释说明,里面包含数据库连接池、Hibernate里的SessionFactory、事务等重点模块的配置。在实际开发过程中多数...

Global site tag (gtag.js) - Google Analytics