数据库连接池的创建原理

基于SpringBoot数据库的连接池集成

一、为什么要使用数据库连接池

1. 在一个javaWeb项目中,数据库是非常重要的一部分,我们在操作数据库的时候不可能每次使用的时候就去创建连接,使用完后就将数据库连接关闭,这是非常浪费资源的(当然如果你是初学者很有可能会这样做,但笔者分析的是实际生产中的使用),所以就要引入数据源,目的是在项目初始化的时候就创建好多个和数据库的连接,后面的请求访问就直接从数据库的连接池中获得数据库的连接,用完后就将连接放回到连接池中,这样可以大大加快访问速率,和减小资源开销。

二、在开发中常使用的数据库连接池

1. SpringBoot默认的数据库连接池 HikariCP 和阿里的 Druid数据源下面会一一进行分析 冲鸭!!!

2. HikariCP数据源和 Druid数据源 在性能上面没有太大区别,但是Druid有很强大的监控功能,后面会做演示。

3.HikariCP 单数据源使用,在pom里面引入文件

 

配置application.yml文件

这样就可以了,记住现在的项目是使用spring-boot搭建的,这样就可以写单元测试了。

这里我们直接使用操作 dataSource是不是在工作中很少这样用呢,我们这里用最原始的方式可以使读者对数据源有更深刻的认识,下面来看下测试类:

这样就可以获得对应的数据了,是不是很简单呢,不用急我们一步一步来深化,

HikariCP的多数据源是怎么配置的?我们来看,可能在很多网上的博客是这样的:

对应的.yml配置文件如下:

一眼看上去感觉是没有问题的那我们来test一下:

执行代码发现对应的.yml里面配置两个数据源的数据都没有问题,那不就可以了吗,不要急我们来debug看下

细心的朋友肯定发现了这和配置文件里面 配置数据好像不一致,这是为什么呢,10又是怎么来的呢, 有经验的开发者一定知道这是默认值,那为什么我们设置的20,30没有加载进去呢,这就涉及到第二层属性问题,因为 hikari.minimum-idle: 20 和 maximum-pool-size: 30属于第二层属性,没有办法加载,那应该怎么处理呢?请继续往下面看

同样的.yml配置

 

对应的加载配置文件类

读者要细心看上面的配置哦

好了我们再来测试一下吧

哈哈 看到没 关于数据源池中的最大连接数和最大空闲数 已经加载进去了 ,order数据源也是一样的

5. 接下来我们再来使用Druid来实现创建数据源,

添加pom依赖:

配置.yml文件

这样使用的是druid数据源了,ip:port/druid 就可以访问到监控界面了

多数据源和上面的Hikaricp一样下面就直接贴图不做详细的解释了,读者有问题可以留言

读取配置文件类

同样存在相同的不能读取druid二层配置属性的问题

同理

读取配置文件java 类

这样就可以读取到 druid的属性了

 

三: 后续SpringBoot和ORM框架的集成

1. 大家一定觉得很奇怪为什么不讲基于ORM框架的集成呢, 如mybatis, Jpa 等等, 我们需要先了解原理,再一步一步集成,敬请期待后面的博客 (读写分离,分库分表 ......)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值