一 添加所需jar包到WEB-INF/lib下
分别是:hibernate-release-5.0.2.Final/lib/required下的所有jar包,proxool的两个jar包:proxool-0.9.1.jar和proxool-cglib.jar,然后是hibernate-proxool-5.0.2.Final.jar(PS:路径:hibernate-release-5.0.2.Final/lib/optional/proxool/),最后把commons-logging-1.1.3.jar和mysql-connector-java-5.1.26-bin.jar也放进去,最终效果如下:
注:我已经把上面所有的jar包打包上传到51CTO下载中心了,不想从官网下载的也可以在这里下载:
Hibernate配置proxool数据库连接池所需jar包
二 在src下配置hibernate.cfg.xml和proxool.xml:
下面,我贴上我的这两个文件的详细内容以供参考:
hibernate.cfg.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?
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
>
<
property
name
=
"hibernate.proxool.pool_alias"
>ProxoolPool</
property
>
<
property
name
=
"hibernate.proxool.xml"
>proxool.xml</
property
>
<
property
name
=
"hibernate.connection.provider_class"
>org.hibernate.proxool.internal.ProxoolConnectionProvider</
property
>
<
property
name
=
"hibernate.proxool.existing_pool"
>true</
property
>
<!-- SQL dialect -->
<
property
name
=
"dialect"
>org.hibernate.dialect.MySQLDialect</
property
>
<
property
name
=
"show_sql"
>true</
property
>
<
mapping
resource
=
"com/hibtest1/entity/Users.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
|
注:
<property name="hibernate.connection.provider_class">org.hibernate.proxool.internal.ProxoolConnectionProvider</property>这里的路径跟以前不一样,已经变了
proxool.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
something-else-entirely
>
<
proxool
>
<
alias
>ProxoolPool</
alias
>
<
driver-url
>jdbc:mysql://127.0.0.1:3306/bookshop?useUnicode=true&characterEncoding=utf-8</
driver-url
>
<
driver-class
>com.mysql.jdbc.Driver</
driver-class
>
<
driver-properties
>
<
property
name
=
"user"
value
=
"root"
/>
<
property
name
=
"password"
value
=
"root"
/>
</
driver-properties
>
<!--最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 -->
<
maximum-connection-count
>100</
maximum-connection-count
>
<!--最小连接数(默认2个)-->
<
minimum-connection-count
>10</
minimum-connection-count
>
<!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁默认30秒-->
<
house-keeping-sleep-time
>90000</
house-keeping-sleep-time
>
<!--没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->
<
maximum-new-connections
>10</
maximum-new-connections
>
<!--最少保持的空闲连接数(默认2个)-->
<
prototype-count
>5</
prototype-count
>
<!--在使用之前测试-->
<
test-before-use
>true</
test-before-use
>
<!--用于保持连接的测试语句 -->
<
house-keeping-test-sql
>select CURRENT_DATE</
house-keeping-test-sql
>
</
proxool
>
</
something-else-entirely
>
|
这里的配置跟以前的差不多,而且有详细注释,因此不多说
三 修改WEB-INF/web.xml,增加节点:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<
servlet
>
<
servlet-name
>proxoolServletConfigurator</
servlet-name
>
<
servlet-class
>org.logicalcobwebs.proxool.configuration.ServletConfigurator</
servlet-class
>
<
init-param
>
<
param-name
>xmlFile</
param-name
>
<
param-value
>WEB-INF/classes/proxool.xml</
param-value
>
<!--这里对应刚才建立的xml配置文件名-->
</
init-param
>
<
load-on-startup
>1</
load-on-startup
>
</
servlet
>
<!-- proxool提供的管理监控工具,可查看当前数据库连接情况-->
<
servlet
>
<
servlet-name
>Admin</
servlet-name
>
<
servlet-class
>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</
servlet-class
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>Admin</
servlet-name
>
<
url-pattern
>/adminProxool</
url-pattern
>
<!--这里的adminProxool可自定义 -->
</
servlet-mapping
>
|
注:在这里没有配置保护域,因此任何人只要知道路径(/adminProxool)就可以查看连接池的信息,如有需要可自行配置
四 测试
到这里,基本上就已经配置好了,后面的数据库操作就跟纯Hibernate一样了
如果项目能够正常启动起来,并且可以打开如上页面,则说明已经配置好了
本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1712596,如需转载请自行联系原作者