JDBC------数据库连接池笔记

本文介绍了数据库连接池的概念,如最小和最大连接数、等待超时等,并详细讲解了开源数据源实现,包括DBCP和C3P0的jar包依赖及配置模板。通过使用数据库连接池,开发者可以避免手动创建数据库连接。最后,文章指出尽管数据源不同,但都遵循DataSource接口,推荐进一步研究Druid与SpringBoot的整合。
摘要由CSDN通过智能技术生成


前言

池化技术:准备一些预先的资源,过来就连接预先准备好的


1、最小连接数:如果常用的连接数是10的话,那最小连接数一般也设置为10。
2、最大连接数:业务最高承载上限(不是并发?),超过了最大连接数就排队等待。
3、等待超时:如果排队时间超过某个值,就不再等待。

编写连接池,实现一个数据源接口 DataSource,里面自带连接。

一、开源的数据源实现

DBCP
C3P0
Druid:阿里巴巴

使用了这些数据库连接池之后,我们在项目开发中就不需要编写连接数据库的代码了!

二、DBCP

jar包:

  • commons-collections
  • commons-dbcp2
  • commons-logging
  • commons-pool2
  • mysql-connector

配置模板:

#连接设置
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true
username=root
password=123

#初始化池大小,即一开始池中就会有10个连接对象
initialSize=10

#最大连接数,如果设置为非正数,表示没有限制!即无限大
maxActive=50

#最大空闲连接,如果设置为负数,表示没有限制!即无限大
maxIdle=20

#最小空闲连接
minIdle=5

#最大等待时间(ms),默认值为-1,表示无限期等待,不会抛出异常。
maxWait=60000

#连接属性
#就是原来放在url后面的参数,可以使用connectionProperties来指定
#如果已经在url后面指定了,那么就不用在这里指定了。
#useServerPrepStmts=true,MySQL开启预编译功能
#cachePrepStmts=true,MySQL开启缓存PreparedStatement功能,
#prepStmtCacheSize=50,缓存PreparedStatement的上限
#prepStmtCacheSqlLimit=300,当SQL模板长度大于300时,就不再缓存它
connectionProperties=useUnicode=true;characterEncoding=UTF8;

#连接的默认提交方式
#默认值为true
defaultAutoCommit=true

#连接是否为只读连接
#Connection有一对方法:setReadOnly(boolean)和isReadOnly()
#如果是只读连接,那么你只能用这个连接来做查询
#指定连接为只读是为了优化!这个优化与并发事务相关!
#如果两个并发事务,对同一行记录做增、删、改操作,是不是一定要隔离它们啊?
#如果两个并发事务,对同一行记录只做查询操作,那么是不是就不用隔离它们了?
#如果没有指定这个属性值,那么是否为只读连接,这就由驱动自己来决定了。即Connection的实现类自己来决定!
defaultReadOnly=

#指定事务的事务隔离级别
#可选值:NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
#如果没有指定,那么由驱动中的Connection实现类自己来决定
defaultTransactionIsolation=READ_UNCOMMITTED

三、C3P0

jar包:

  • c3p0-0.9.5.2
  • mchange-commons-java-0.2.15
  • mysql-connector-java-8.0.11

配置模板:

<?xml version="1.0" encoding="UTF-8"?>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值