DBCP,C3P0,druid,HiKariCP连接池配置使用
Apache DBCP连接池配置
Apache commons-dbcp 需要导入dbcp包和 pool包 ,可以
从spring-framework-3.0.2.RELEASE-dependencies包中找到。
- com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
- com.springsource.org.apache.commons.pool-1.5.3.jar
找到org.apache.commons路径
配置applicationContext.xml文件
<!-- 配置apache的dbcp连接池 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql:///igeekspring"/><property name="username" value="root"/><property name="password" value="root"/></bean><!-- jdbctemplate对象 --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><!-- 注入数据源 --><property name="dataSource" ref="dataSource"/></bean>
测试类:
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations="classpath:applicationContext.xml")public class SpringTest {//注入要测试bean@Autowiredprivate JdbcTemplate jdbcTemplate;@Testpublic void testCreatetable(){jdbcTemplate.execute("create table test003(id int,name varchar(20))");}}
C3P0 连接池配置
导入C3P0的jar,可以从spring-framework-3.0.2.RELEASE-dependencies包中找到。
路径在com.mchange.c3p0中
- com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
配置applicationContext.xml文件
<!-- c3p0连接池 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql:///igeekspring"/><property name="user" value="root"/><property name="password" value="root"/></bean><!-- jdbctemplate对象 --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><!-- 注入数据源 --><property name="dataSource" ref="dataSource"/></bean>
测试类:
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations="classpath:applicationContext.xml")public class SpringTest {//注入要测试bean@Autowiredprivate JdbcTemplate jdbcTemplate;@Testpublic void testCreatetable(){jdbcTemplate.execute("create table test004(id int,name varchar(20))");}}
Druid 连接池配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
"><!-- 加载资源文件 --><context:property-placeholder location="classpath:/db.properties"/><!-- 开启扫描 --><context:component-scan base-package="com.igeek.crm"/><!-- 配置DataSource --><!-- 使用德鲁伊连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${jdbc.url}"/><property name="driverClassName" value="${jdbc.driverClass}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/><property name="initialSize" value="${jdbc.initialSize}"/><property name="maxActive" value="${jdbc.maxActive}"/><property name="filters" value="stat,slf4j"/></bean><!-- jdbc的模板类 --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><!-- 注入数据源 --><property name="dataSource" ref="dataSource"/></bean>
</beans>
HiKariCP连接池配置
<!-- Hikari Datasource --><bean id="dataSourceHikari" class="com.zaxxer.hikari.HikariDataSource" destroy-method="shutdown"><!-- <property name="driverClassName" value="${db.driverClass}" /> --> <!-- 无需指定,除非系统无法自动识别 --><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" /><property name="username" value="${db.username}" /><property name="password" value="${db.password}" /><!-- 连接只读数据库时配置为true, 保证安全 --><property name="readOnly" value="false" /><!-- 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒 --><property name="connectionTimeout" value="30000" /><!-- 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟 --><property name="idleTimeout" value="600000" /><!-- 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒,参考MySQL wait_timeout参数(show variables like '%timeout%';) --><property name="maxLifetime" value="1800000" /><!-- 连接池中允许的最大连接数。缺省值:10;推荐的公式:((core_count * 2) + effective_spindle_count) --><property name="maximumPoolSize" value="15" /></bean>
外部属性文件的配置 db.properties
模拟需求:
现在数据源的相关参数配置,是测试环境下的。
现在,要将工程搭建在正式的服务器上,因为测试环境和正式环境的数据库肯定不是一个,所以肯定首先要更改数据源相关的配置。
缺点:必须手动修改applicationContext.xml文件,容易造成误操作。
解决方案:不修改。可以将数据源相关配置参数,外置。
目的:可以将xml配置中可能要经常修改内容,抽取到一个properties文件
应用:使用properties文件配置参数,如数据库连接参数等。
第一步: src新建db.properties
将经常需要修改变量抽取出来
jdbc.driverClass=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql:///igeekspringjdbc.username=rootjdbc.password=root
第二步: 配置applicationContext.xml文件,在applicationContext.xml 通过
<context:property-placeholder> 引入外部属性文件
通过${key} 引用属性的值
<!-- 引入外部属性配置文件--><context:property-placeholder location="classpath:db.properties"/><!-- 配置内置的数据源bean,使用db.properties --><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="${jdbc.driverClass}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>
第三步:使用SpringTest.java进行测试
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations="classpath:applicationContext.xml")public class SpringTest {//注入要测试bean@Autowiredprivate JdbcTemplate jdbcTemplate;@Testpublic void testCreatetable(){jdbcTemplate.execute("create table test006(id int,name varchar(20))");}}
DBCP,C3P0,druid,HiKariCP连接池配置使用相关推荐
- c3p0、dbcp、druid三大连接池对比
转: c3p0.dbcp.druid三大连接池对比 转载于:https://www.cnblogs.com/littlelazy/p/10480552.html
- HikariCP连接池配置
2019独角兽企业重金招聘Python工程师标准>>> HikariCP号称性能最好的Java数据库连接池.虽没做过亲测但是公司项目一直在用,大概经历过2万左右用户同时在线,链接池性 ...
- Spring Boot 使用 HikariCP 连接池配置详解
Spring Boot 使用 HikariCP 连接池配置详解 HikariCP 是一个高性能的 JDBC 连接池组件. Spring Boot 2.x 将其作为默认的连接池组件,项目中添加 spri ...
- Druid 数据源连接池配置
在 Spring Boot 的配置文件中对 Druid 数据源连接池进行配置 # Druid连接池的配置 spring:datasource:druid:initial-size: 5 #初始化连接大 ...
- druid连接池_c3p0、dbcp、druid 三大连接池对比
- mysql odbc连接池_Java Mysql连接池配置和案例分析--超时异常和处理
前言: 最近在开发服务的时候, 发现服务只要一段时间不用, 下次首次访问总是失败. 该问题影响虽不大, 但终究影响用户体验. 观察日志后发现, mysql连接因长时间空闲而被关闭, 使用时没有死链检测 ...
- Hibernate连接池配置实例
Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP.在Hibernate连接池配置时需要注意的有三点: 一.Apche的DBCP在Hibernate2中受支 ...
- HikariCP连接池常用配置详解
除了dadaSourceClassName/jdbcUrl.username.password这三个必须配置之外,HikariCP还有一些非必须配置,非必需配置包含的常用配置和非常用配置都是可选的.H ...
- Spring+Hibernate+c3p0连接池配置-连接无法释放的问题解决方案
1.Spring+Hibernate+c3p0连接池配置: <?xml version="1.0" encoding="UTF-8"?> < ...
最新文章
- HTML的标签描述16
- 使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能(五)
- RISV-V未来将面临怎样的挑战?
- erp服务器哪个稳定,选择erp服务器需要注意的几大问题
- python 基础语法练习回顾
- Angular里的style property binding的一个例子
- 自定义EditText输入框
- mlag 堆叠_S-MLAG解决方案介绍
- 10年IT老兵酒后吐真言,我看了5遍...
- jquery学习--对象
- Android图形之HWC(二十四)
- 编译安装M2Crypto-0.20.2
- 放大电路的分析方法详解
- vs2019配置glfw、glad等环境
- ChemDraw中如何旋转结构
- 我是如何从通信转到Java软件开发工程师的?
- cv2.imread默认情况下读取的是彩色图片
- ARM GICv3 ITS介绍及代码分析
- MNIST数据集学习
- 渡一教育公开课web前端开发JavaScript精英课学习笔记(二十六)JavaScript 打砖块
热门文章
- Lady Gaga ft.Beyonce- Telephone
- jsp开发教程之 仿MOP论坛 三(帖子列表-上)
- Oracle Restart能够用来给Oracle GoldenGate 做 High Availability 使用么?
- Note: File Recipe Compression in Data Deduplication Systems
- unity5 人皮渲染 Skin Shading
- CodeForces 521D nice贪心
- 《You can do it!》的chapter 2笔记
- VBA 打开 Debug窗口 进行调试 (同时可以查看debug操作对应的快捷键)
- 【Kettle】date类型不能被excel输出
- 【PostgreSQL-9.6.3】物化视图