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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一 添加所需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

注:我已经把上面所有的jar包打包上传到51CTO下载中心了,不想从官网下载的也可以在这里下载:

Hibernate配置proxool数据库连接池所需jar包


二 在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 >

这里的配置跟以前的差不多,而且有详细注释,因此不多说


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

wKioL1ZFv8GCor5nAAB5EzYyXEQ903.png

如果项目能够正常启动起来,并且可以打开如上页面,则说明已经配置好了



本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1712596,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
数据库 开发者 Java
Hibernate映射注解的魔力:实体类配置的革命,让你的代码量瞬间蒸发!
【8月更文挑战第31天】Hibernate 是一款出色的对象关系映射框架,简化了 Java 应用与数据库的交互。其映射注解让实体类配置变得直观简洁。本文深入剖析核心概念与使用技巧,通过示例展示如何简化配置。
70 0
|
8月前
|
前端开发 Java 关系型数据库
在Spring3 MVC中五步配置集成注解方式Hibernate3
在Spring3 MVC中五步配置集成注解方式Hibernate3
57 3
|
9月前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——TestStu.java
hibernate正向生成数据库表以及配置——TestStu.java
|
9月前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Teacher.hbm.xml
hibernate正向生成数据库表以及配置——Teacher.hbm.xml
|
9月前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Teacher.java
hibernate正向生成数据库表以及配置——Teacher.java
|
9月前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Student.java
hibernate正向生成数据库表以及配置——Student.java
|
9月前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
|
9月前
|
JavaScript Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
|
Java 关系型数据库 数据库连接
Spring Boot 学习研究笔记(八) - Spring Data JPA与Hibernate区别及配置(2)
Spring Boot 学习研究笔记(八) - Spring Data JPA与Hibernate区别及配置
399 0
|
SQL Java 数据库连接
Spring Boot 学习研究笔记(八) - Spring Data JPA与Hibernate区别及配置(1)
Spring Boot 学习研究笔记(八) - Spring Data JPA与Hibernate区别及配置
413 0