Hibernate+Proxool(oracle)配置

最近完成了一个小项目,本来是用mysql数据库的,但客户要求要用oracle,没办法只能重新做了。

原先在mysql项目中使用的数据源是c3p0,没有出现什么问题,但移植到oracle就存在有时会连接不上数据库,总是报流已关闭的错误,改了参数了不行,不知道是不是驱动的问题.最后决定用proxool试一下.目前还没发现什么问题

 

下载:Proxool  ,http://sourceforge.net/projects/proxool  ,我下的是proxool-0.9.1版本.

 

 

下面是我的配置:

1.在hibernate平级目录下创建Proxool.xml

<?xml version="1.0" encoding="UTF-8"?> 

<something-else-entirely>
  <proxool>
    <alias>DBPool</alias>
    <driver-url>jdbc:oracle:thin:@192.168.1.100:1521:ORCL</driver-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <driver-properties>
      <property name="user" value="scott"/>
      <property name="password" value="tiger"/>
    </driver-properties>
     <house-keeping-test-sql>select sysdate from dual</house-keeping-test-sql>   
      <house-keeping-sleep-time>90000</house-keeping-sleep-time>
      <maximum-new-connections>20</maximum-new-connections>
      <prototype-count>5</prototype-count>
      <maximum-connection-count>100</maximum-connection-count>
      <minimum-connection-count>10</minimum-connection-count>


  </proxool>
</something-else-entirely>

 

 

说明: 最好不要在代码上作注释,听说会有问题,但没遇过。

 

<alias>: 给连接池取一个别名,在hibernate配置文件中将引用这个别名。

 

  <house-keeping-test-sql>:  如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略。  如果是mysql 可以用select CURRENT_DAT作为查询语句.

 

 

 <house-keeping-sleep-time>:house keeper 保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建,这个的默认值是30秒。

 

<maximum-connection-count>:大的数据库连接数。

 

 

<maximum-new-connections>:因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受。

 

<prototype-count>: 最少保持的空闲连接数。

 

 

2.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="myeclipse.connection.profile">oracle5</property>
	<property name="connection.driver_class">
		oracle.jdbc.driver.OracleDriver
	</property>

	<property name="connection.url">
		jdbc:oracle:thin:@192.168.1.100:1521:ORCL
	</property>
	<property name="connection.username">scott</property>
	<property name="connection.password">tiger</property>

	
	<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>

	
<property name="hibernate.connection.provider_class">
	org.hibernate.connection.ProxoolConnectionProvider
</property>
<property name="hibernate.proxool.pool_alias">DBPool</property> 
<property name="hibernate.proxool.xml">Proxool.xml</property> 


	<!-- 设置二级缓存插件EHCache的Provider类 -->
	<property name="hibernate.cache.provider_class">
		org.hibernate.cache.EhCacheProvider
	</property>

	<!-- 启用查询缓存 -->
	<property name="hibernate.cache.use_query_cache">false</property>
	

	<mapping resource="com/agency/ORM/Logs.hbm.xml" />

</session-factory>

</hibernate-configuration>
	

 

 

 

 

 


 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值