日期:2014-05-16  浏览次数:20714 次

Hibernate + proxool 初级配置(Hibernate3+MySql 8小时)

网上找了一些关于解决 Hibernate3 + MySql 8小时的问题,好多网友都建议用 proxool

也查找了一些相关的文章,需要做些准备,首先下载proxool,下载地址 : 点我下载 (也可以从我提供的附件里下载)

然后将 lib 文件夹下的两个 .jar 文件 拷贝到 项目的 lib 文件夹中。

?

现将我自己配置的代码粘到这里,以备众不时之需。

?

好,现在在src 目录下,也就是与hibernate.cfg.xml 同目录下建立 proxool.xml

代码如下:

proxool.xml (这段中大部分是copy网友的,就yourDB、root、123是我改的= =;)

<?xml version="1.0" encoding="UTF-8"?>
<proxool>
    <!-- 数据库连接池别名 -->
    <alias>DBPool</alias>
    <!-- 连接字符串 -->
    <!-- yourDB为你需要连接的数据库,改成自己的数据库名字 -->
?   <driver-url>jdbc:mysql://localhost:3306/yourDB</driver-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <driver-properties>
        <property name="user" value="root" />
        <property name="password" value="123" />
    </driver-properties>
    <!-- 自动侦察各个连接状态的时间间隔(毫秒,侦察到空闲的连接马上回收,超时的销毁 ) -->
    <house-keeping-sleep-time>60000</house-keeping-sleep-time>
    <!-- 最大的等待请求数 -->
    <proxool.simultaneous-build-throttle>20</proxool.simultaneous-build-throttle>
    <!-- 最少保持的空闲连接数 -->
    <prototype-count>5</prototype-count>
    <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中 -->
    <maximum-connection-count>10</maximum-connection-count>
    <!-- 最小连接数 -->
    <minimum-connection-count>1</minimum-connection-count>
    <!-- 如果发现了空闲的数据库连接,house keeper将用这个语句来测试 -->
    <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
?

修改hibernate.cfg.xml,修改后,会像下面的代码

?

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="dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
		<property name="myeclipse.connection.profile">MySql</property>
		<property name="show_sql">true</property>
		<property name="show_format">true</property>
		<!-- start proxool  -->
        <!-- Database connection settings -->
        <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>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- Echo all executed SQL to stdout -->
        <!-- Drop and re-create the database schema on startup
        <property name="hbm2ddl.auto">create</property>
        -->
		<!-- end proxool  -->
		<mapping resource="com/a/pojo/Users.hbm.xml" />
	</session-factory>
</hibernate-configuration>

?

修改web.xml ,在其中添加 如下代码:

  <!-- strat proxool  -->
  <servlet>
    <servlet-name>proxool</s