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

news/2024/7/5 6:29:07

由于新版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一样了



http://www.niftyadmin.cn/n/3354288.html

相关文章

计数排序,基数排序,桶排序算法

计数排序&#xff0c;基数排序&#xff0c;桶排序算法 计数排序算法&#xff1a; -------------------------------------------------------------template <class Type>void CountingSort(int a[],int b[],int k){int i,*c;c(int*)malloc(sizeof(int)*k);for(i0;i<…

CSS颜色表示法和颜色表

颜色表示法 color name&#xff1a;颜色的名称&#xff1b; color&#xff1a;red&#xff1b; 直接用英文意思来写&#xff0c;但是数量有限&#xff0c;不支持透明颜色 十六进制方式&#xff1a; color&#xff1a;#191d11&#xff1b;所有#开头的都是16进制 rgb&#xff0…

水泥混凝土摊铺机对于建设中模具的调整和效率的均衡

把对于拦水带等路面外侧设置的构筑建设提速&#xff0c;归根结底要将施工作业的性能提升起来&#xff0c;相比于建设路面而言&#xff0c;旁边的建设难度和耗费的精力可一点都不少&#xff0c;能够适用在项目中的良好性能的机械设备很难得。 模具的重要功能在于针对既有的施工步…

设计模式之观察者

观察者模式 Observer定义 观察者模式定义了对象之间的一对多依赖&#xff0c;这样一来&#xff0c;当一个对象改变状态时&#xff0c;他的所有依赖者都会收到通知&#xff0c;并自动更新。   说明&#xff1a; &#xff08;1&#xff09;对象的一对多的关系中&#xff0c;&qu…

WebService和Http的POST和GET请求区别和示例

web service&#xff08;SOAP&#xff09;Webservice的一个最基本的目的就是提供在各个不同平台的不同应用系统的协同工作能力。Web service 就是一个应用程序&#xff0c;它向外界暴露出一个能够通过Web进行调用的API。SOAP是一种简单基于xml的轻量协议&#xff0c;用户web上交…

路边石混凝土成型机作业方案与施工注意事项

作为施工项目中的技术实现手段&#xff0c;路边石混凝土成型机在确认需求参数与尺寸后&#xff0c;配合相应模具来根据厚度宽度等定位参数来准确建设作业&#xff0c;以效率和质量为前提作为基准进行快速准确作业&#xff0c;加载在项目中提现是效率高效的保障。 其中对于各施工…

uC/OS学习笔记1

这几天稍微空闲点&#xff0c;看了一下uC/OS&#xff0c;用的教材是人民邮电的《uC/OS-II内核分析、移植与驱动程序开发》&#xff0c;刚开始感觉他写的有点稀里糊涂的&#xff0c;自己理一下头绪。uC/OS看到现在&#xff0c;让我感叹这个系统真的是用空间换取时间的典范&#…

Cache的使用

1.Cache与Session的区别每个用户都有自己单独的Session对象但是放在Cache中的数据是大家共享的 protected void SetCache() { //判断缓存是否为空 if (Cache["UserInfo"] null) { Bll.UserInfoBll userInfobll new Bll.UserInfoBll(); //如果为空了&#xff0c;需要…