Apache DBCP连接池配置

Apache commons-dbcp 需要导入dbcp包和 pool包 ,可以

从spring-framework-3.0.2.RELEASE-dependencies包中找到。

  1. com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
  2. 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中

  1. 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连接池配置使用相关推荐

  1. c3p0、dbcp、druid三大连接池对比

    转: c3p0.dbcp.druid三大连接池对比 转载于:https://www.cnblogs.com/littlelazy/p/10480552.html

  2. HikariCP连接池配置

    2019独角兽企业重金招聘Python工程师标准>>> HikariCP号称性能最好的Java数据库连接池.虽没做过亲测但是公司项目一直在用,大概经历过2万左右用户同时在线,链接池性 ...

  3. Spring Boot 使用 HikariCP 连接池配置详解

    Spring Boot 使用 HikariCP 连接池配置详解 HikariCP 是一个高性能的 JDBC 连接池组件. Spring Boot 2.x 将其作为默认的连接池组件,项目中添加 spri ...

  4. Druid 数据源连接池配置

    在 Spring Boot 的配置文件中对 Druid 数据源连接池进行配置 # Druid连接池的配置 spring:datasource:druid:initial-size: 5 #初始化连接大 ...

  5. druid连接池_c3p0、dbcp、druid 三大连接池对比

  6. mysql odbc连接池_Java Mysql连接池配置和案例分析--超时异常和处理

    前言: 最近在开发服务的时候, 发现服务只要一段时间不用, 下次首次访问总是失败. 该问题影响虽不大, 但终究影响用户体验. 观察日志后发现, mysql连接因长时间空闲而被关闭, 使用时没有死链检测 ...

  7. Hibernate连接池配置实例

    Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP.在Hibernate连接池配置时需要注意的有三点: 一.Apche的DBCP在Hibernate2中受支 ...

  8. HikariCP连接池常用配置详解

    除了dadaSourceClassName/jdbcUrl.username.password这三个必须配置之外,HikariCP还有一些非必须配置,非必需配置包含的常用配置和非常用配置都是可选的.H ...

  9. Spring+Hibernate+c3p0连接池配置-连接无法释放的问题解决方案

     1.Spring+Hibernate+c3p0连接池配置: <?xml version="1.0" encoding="UTF-8"?> < ...

最新文章

  1. HTML的标签描述16
  2. 使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能(五)
  3. RISV-V未来将面临怎样的挑战?
  4. erp服务器哪个稳定,选择erp服务器需要注意的几大问题
  5. python 基础语法练习回顾
  6. Angular里的style property binding的一个例子
  7. 自定义EditText输入框
  8. mlag 堆叠_S-MLAG解决方案介绍
  9. 10年IT老兵酒后吐真言,我看了5遍...
  10. jquery学习--对象
  11. Android图形之HWC(二十四)
  12. 编译安装M2Crypto-0.20.2
  13. 放大电路的分析方法详解
  14. vs2019配置glfw、glad等环境
  15. ChemDraw中如何旋转结构
  16. 我是如何从通信转到Java软件开发工程师的?
  17. cv2.imread默认情况下读取的是彩色图片
  18. ARM GICv3 ITS介绍及代码分析
  19. MNIST数据集学习
  20. 渡一教育公开课web前端开发JavaScript精英课学习笔记(二十六)JavaScript 打砖块

热门文章

  1. Lady Gaga ft.Beyonce- Telephone
  2. jsp开发教程之 仿MOP论坛 三(帖子列表-上)
  3. Oracle Restart能够用来给Oracle GoldenGate 做 High Availability 使用么?
  4. Note: File Recipe Compression in Data Deduplication Systems
  5. unity5 人皮渲染 Skin Shading
  6. CodeForces 521D nice贪心
  7. 《You can do it!》的chapter 2笔记
  8. VBA 打开 Debug窗口 进行调试 (同时可以查看debug操作对应的快捷键)
  9. 【Kettle】date类型不能被excel输出
  10. 【PostgreSQL-9.6.3】物化视图