最新的Hibernate(5.0.2.Final)里配置proxool连接池详细步骤

由于新版Hibernatet的lib/required/下的jar包和旧版的有很大的不同,因此配置proxool数据库连接池时有了些许的不同。在此,我写下配置的详细步骤以供其他童鞋参考


一 添加所需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也放进去,最终效果如下:

wKioL1ZFuvfD7_lkAAAqmLBxcLo174.png


二 在src下配置hibernate.cfg.xml和proxool.xml:


wKioL1ZFvBOz9pTOAAArnnR7crA903.png

下面,我贴上我的这两个文件的详细内容以供参考:

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&amp;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 >

这里的配置跟以前参加java培训的时候的差不多,而且有详细注释,因此不多说


三 修改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一样了


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值