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">
<!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>
<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" />
<!-- 数据库链接 -->
<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>
-->
<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>
<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>
<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>
<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>
<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 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容器,所以测试的时候需要部署项目测试。
相关推荐
连接池配置文件 博文链接:https://yanghaiskys.iteye.com/blog/215424
hibernate 数据库 连接池包文件,自己找了很多网站才找到的,传到CSDN方便需要的人使用
-- 配置连接池参数信息--> <property name="hibernate.c3p0.min_size">2</property> <prope
c3p0-0.9.2.1.jar&&hibernate-c3p0-4.0.0.Final[1].jar&&mchange-commons-java-0.2.3.4.jar
proxool 数据库连接池用户名、密码加密处理,文件里面包含可直接使用加密的jar以及相关使用说明。
内容概要:c3p0连接池需要jar包.rar以及相关配置文件 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。 适合人群:正在学习...
置自己的测试环境,需要自己抽象整个框架,引入测试框架中,配合测试自己的测试用例。但是发现数据库连接池老出现问题,搜索问题和答案后,总结一下,备忘。
Hibernate开发jar包 5.07 配置文件内容 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" ...
本文件为一个基本的项目配置,包括springmvc的基本配置,数据库连接池(c3p0)、事务管理、缓存、拦截器的配置。部分采用xml配置,部分采用注解。
详细介绍myEclipse/8.5中整合SSH(Spring/3.0 Struts/2.1 hibernate/3.3)步骤配图介绍操作步骤,文件配置,包括spring事物配置,hibernate数据库及连接池配置等,内容详尽,有超高参考价值。
12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和...
19.1.2 使用配置文件指定的数据库连接池 19.1.3 从容器中获得数据源 19.1.4 由Java应用本身提供数据库连接 19.2 配置事务类型 19.3 把SessionFactory与JNDI绑定 19.4 配置日志 19.5 使用XML格式的配置...
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整合所需的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文件
Hibernate框架,默认推荐使用C3P0作为连接池实现,一个开源的连接池。 拷贝c3p0的jar到lib目录 (c3p0-0.9.5.2.jar , mchange-commons-java-0.2.12.jar) 把配置文件c3p0.xmla拷贝到src目录下(配置文件名一定不能修改...
12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和...
详细示范了当前java里面流行的三大框架的整合,对于spring的配置文件applicationContext.xml做了详细的注释说明,里面包含数据库连接池、Hibernate里的SessionFactory、事务等重点模块的配置。在实际开发过程中多数...