Hibernate连接配置文件

本文介绍如何在Hibernate中配置C3P0连接池,包括基本连接设置、C3P0参数配置及容器管理连接池的方法。同时,提供具体的XML配置示例。
<!-- C3P0数据源管理连接池 -->
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
		<!-- Database connection settings -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
		<property name="connection.username">root</property>
		<property name="connection.password">root</property>

		<!-- JDBC connection pool (use the built-in) 
		不使用内建连接词,hibernate参考手册的一段
		Hibernate 自带的连接池算法相当不成熟。它只是为了让你快些上手,并不适合用于产品系统或性能测试中。 
		出于最佳性能和稳定性考虑你应该使用第三方的连接池。只需要用特定连接池的设置替换 hibernate.connection.pool_size 即可。
		
		<property name="connection.pool_size">5</property>
		-->
		<!-- 自建c3p0连接池,要加入c3p0-0.9.1.jar-->
		
		<property name="hibernate.c3p0.min_size">5</property>
		<property name="hibernate.c3p0.max_size">20</property>
		<property name="hibernate.c3p0.timeout">1800</property>
		<!-- 最大的PreparedStatement的数量 -->
		<property name="hibernate.c3p0.max_statements">100</property> 
                <!--配置默认schema
<property name="hibernate.default_schema" value="myschema"/>
-->
		<!-- SQL dialect -->
		<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

		<!-- Enable Hibernate's automatic session context management -->
		<property name="current_session_context_class">thread</property>

		<!-- Disable the second-level cache  -->
		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

		<!-- Echo all executed SQL to stdout -->
		<property name="show_sql">true</property>
		
		<!-- Drop and re-create the database schema on startup -->
		<property name="hbm2ddl.auto">update</property>
		
		<mapping resource="net/hnspi/entity/Record.hbm.xml" />
		<mapping resource="net/hnspi/entity/Account.hbm.xml" />
		 
	</session-factory>
</hibernate-configuration>


数据源配置:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/">  
<Resource auth="Container" 
driverClassName="com.mysql.jdbc.Driver" 
type="javax.sql.DataSource"
name="jdbc/datasuourcePool"
url="jdbc:mysql://127.0.0.1:3306/hibernate?useUnicode=true&characterEncoding=GBK&autoReconnect=true"
username="zhangh"
password="123456"
logAbandoned="true" 
maxActive="5" 
maxIdle="2" 
maxWait="5000" 
removeAbandoned="true" 
removeAbandonedTimeout="300"
testOnReturn="true" 
testWhileIdle="true" 
validationQuery="select now()"/>
</Context>   


容器管理连接池,连接通过数据源取得

注意:数据库连接jar包要放到Tomcat(小弟用的是tomcat)的lib目录,不然会报找不到Driver的错误。我想原因大概是由容器管理连接池,就是在服务器启动的时候,就会建立好连接池,这个时候肯定是需要数据库连接的jar包。也就是连接的jar包在应用运行之前就已经使用到了,所以放在应用的lib下也不会解决问题。

<?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">
<hibernate-configuration>
	<session-factory>
		<!-- 交由容器管理数据库连接池 -->
		<property name="connection.datasource">java:comp/env/jdbc/datasuourcePool</property>
		<property name="connection.provider_class">org.hibernate.connection.DatasourceConnectionProvider</property>
		
		
		<!-- 配置默认schema <property name="hibernate.default_schema" value="myschema"/> -->
		<!-- SQL dialect -->
		<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

		<!-- Enable Hibernate's automatic session context management -->
		<property name="current_session_context_class">thread</property>

		<!-- Disable the second-level cache -->
		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

		<!-- Echo all executed SQL to stdout -->
		<property name="show_sql">true</property>

		<!-- Drop and re-create the database schema on startup -->
		<property name="hbm2ddl.auto">update</property>

		<!-- 配置实体映射 -->
		<mapping resource="com/akwolf/bean/Event.hbm.xml"/>
	</session-factory>
</hibernate-configuration>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值