一、连接池

在普通的数据库访问程序中,客户程序得到的连接对象是物理连接,调用连接对象的close()方法将关闭连接,而采用连接池技术,客户程序得到的连接对象是连接池中物理连接的一个句柄,调用连接对象的close()方法,物理连接并没有关闭,数据源的实现只是删除了客户程序中的连接对象和池中的连接对象之间的联系。

二、连接池框架比较

目前常用的连接池框架主要有c3p0、dbcp、proxool、druid。Spring 推荐使用dbcp;Hibernate 推荐使用c3p0和proxool

1、 DBCP:apache

DBCP(DataBase connection pool)数据库连接池。是apache上的一个 java连接池项目,也是 tomcat使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。dbcp没有自动的去回收空闲连接的功能。

2、 C3P0:

C3P0是一个开源的jdbc连接池,它实现了数据源和jndi绑定,支持jdbc3规范和jdbc2的标准扩展。c3p0是异步操作的,缓慢的jdbc操作通过帮助进程完成。扩展这些操作可以有效的提升性能。目前使用它的开源项目有Hibernate,Spring等。c3p0有自动回收空闲连接功能。

3、 Proxool:Sourceforge

Proxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。

综合来说,稳定性是dbcp>=c3p0>proxool

后来阿里巴巴的Druid开源了,Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQLParser。Druid支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQLServer、H2等等。

Druid针对Oracle和MySql做了特别优化,比如Oracle的PSCache内存占用优化,MySql的ping检测优化。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势。Druid提供了Filter-Chain模式的扩展API,可以自己编写Filter拦截JDBC中的任何方法,可以在上面做任何事情,比如说性能监控、SQL审计、用户名密码加密、日志等等。

三、在Spring Boot中加入Druid连接池

3.1 添加druid依赖

compile group: 'com.alibaba', name: 'druid', version: '1.1.17'

3.2 修改application.yml配置文件

spring:

########-spring datasource-########

datasource:

#账号配置

url: jdbc:mysql://127.0.0.1:3306/retail_db?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8

username: test

password: test

driver-class-name: com.mysql.cj.jdbc.Driver

#druid连接池配置

type: com.alibaba.druid.pool.DruidDataSource

initialSize: 5

minIdle: 5

maxActive: 20

maxWait: 60000

timeBetweenEvictionRunsMillis: 60000

minEvictableIdleTimeMillis: 300000

validationQuery: SELECT 1 FROM DUAL

testWhileIdle: true

testOnBorrow: false

testOnReturn: false

poolPreparedStatements: true

maxPoolPreparedStatementPerConnectionSize: 20

filters: stat,wall,log4j

connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

3.3 DruidConfiguration 配置类

import org.springframework.context.annotation.Configuration;

import org.springframework.boot.web.servlet.FilterRegistrationBean;

import org.springframework.boot.web.servlet.ServletRegistrationBean;

import org.springframework.context.annotation.Bean;

import com.alibaba.druid.support.http.StatViewServlet;

import com.alibaba.druid.support.http.WebStatFilter;

/**

* @author Alan Chen

* @description Druid连接池监控平台 http://localhost:8080/druid/index.html

* @date 2019/6/4

*/

@Configuration

public class DruidConfiguration {

@Bean

public ServletRegistrationBean startViewServlet(){

ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");

// IP白名单

servletRegistrationBean.addInitParameter("allow","127.0.0.1");

// IP黑名单(共同存在时,deny优先于allow)

servletRegistrationBean.addInitParameter("deny","127.0.0.1");

//控制台管理用户

servletRegistrationBean.addInitParameter("loginUsername","admin");

servletRegistrationBean.addInitParameter("loginPassword","123456");

//是否能够重置数据

servletRegistrationBean.addInitParameter("resetEnable","false");

return servletRegistrationBean;

}

@Bean

public FilterRegistrationBean statFilter(){

FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());

//添加过滤规则

filterRegistrationBean.addUrlPatterns("/*");

//忽略过滤的格式

filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");

return filterRegistrationBean;

}

}

3.4 启动服务,登录Druid连接池监控平台

Druid连接池监控平台

最后给大家送波福利

阿里云折扣快速入口

druid连接池mysql5.7_Spring Boot 使用Druid连接池整合Mybatis-Plus连接Mysql数据库相关推荐

  1. druid java直接调用_Spring Boot使用Druid连接池的示例代码

    Druid是Java语言中最好的数据库连接池.Druid相比于其他的数据库连接池,有两大特性: 监控数据库,有利于分析线上数据库问题 更容易扩展,同时也很高效. 今天演示一下Spring Boot集成 ...

  2. mybatis 配置 mysql连接池_spring 5.x 系列第5篇 —— 整合 mybatis + druid 连接池 (xml配置方式)...

    项目目录结构 1. 导入依赖 创建 maven 工程,除了 Spring 的基本依赖外,还需要导入 Mybatis 和 Druid 的相关依赖: org.springframeworkgroupId& ...

  3. Spring Boot 2.x基础教程:使用JdbcTemplate访问MySQL数据库

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | didispace.com/ ...

  4. jdbctemplate mysql 配置_Spring Boot 初级入门教程(十四) —— 配置 MySQL 数据库和使用 JdbcTemplate 测试...

    经过前面几篇文章,包已经可以打了,不管是 jar 包还是 war 包都已测试通过,jsp 页面也可以访问了,但页面上的数据都是在配置文件中写死的,不爽 ~ 到目前为止,最重要的配置还没做,那就是连数据 ...

  5. mybatis mysql5.7_spring boot整合ES+mysql5.7+mybatis+iview个人博客系统

    项目描述 目前博主正在开发自己的博客,分享的目的,是为了给自己留一版基础代码,好用来以后,做二次开发,也方便大家做二次开发.这个代码我还整合了其他的东西,比如qz定时器,shiro,只不过就目前而言, ...

  6. druid 多数据源_Spring Boot2 系列教程(二十二)整合 MyBatis 多数据源

    关于多数据源的配置,前面和大伙介绍过 JdbcTemplate 多数据源配置,那个比较简单,本文来和大伙说说 MyBatis 多数据源的配置. 其实关于多数据源,我的态度还是和之前一样,复杂的就直接上 ...

  7. mybatis mysql demo_SpringBoot(入门Demo,整合mybatis,连接mysql)

    1.简介 SpringBoot提供一种固定的.约定优于配置风格的框架,使开发者更快地创建基于spring的应用和程序.可以高效的创建基于Spring的应用服务(SpringBoot不是对spring功 ...

  8. 第十篇:Spring Boot整合mybatis+逆向工程(Mysql+Oracle) 入门试炼01

    1.添加pom依赖 <dependencies><!--springboot web 启动器--><dependency><groupId>org.sp ...

  9. springboot整合mysql5.7_springboot整合mybatis访问mysql,数据库

    讲解如何在springboot下整合mybatis,并访问数据库. 引入依赖 在pom文件引入mybatis-spring-boot-starter的依赖: org.mybatis.spring.bo ...

最新文章

  1. 抽象工厂模式java_面试官:说一下静态工厂模式,工厂方法模式,抽象工厂的区别吧...
  2. Eclipse快捷键(自用)
  3. 汇编语言学习笔记(五)
  4. python getchar,Linux C编程学习:getchar()和getch()
  5. 微课系列(三):Python列表中存储的是元素的引用
  6. tcp/udp/socket 端口映射,转发小工具
  7. [nowcoder]最长区间
  8. 【BZOJ 1047】[HAOI2007]理想的正方形
  9. 在CNN网络中roi从原图映射到feature map中的计算方法
  10. 计算机一级基础知识理论,计算机一级考试理论试题 第6部分 信息与计算机基础知识...
  11. TCP粘包和拆包问题
  12. 数据库系列之MySQL表ibd文件删除恢复
  13. 02Hadoop3分布式文件系统HDFS-01HDFS Shell文件操作
  14. 软件单元黑盒测试,软件测试教学资源单元3 黑盒测试.doc
  15. 类似于QQ的网络聊天室
  16. python有向图遍历_用Networkx进行有向图遍历
  17. context.getApplicationContext()与context的差别
  18. 从财富排行到金融科技
  19. python爬虫爬取王者荣耀官网全部英雄头像(源码分享)
  20. 土地利用覆被变化的概念_土地利用土地覆被变化研究概述

热门文章

  1. 20172304 结对编程--四则运算实验总结
  2. 三个获取浏览器URL中参数值的方法
  3. zookeeper web ui--gt;node-zk-browser安装
  4. 递归学习五--折半查找--java
  5. 确保 PHP 应用程序的安全
  6. 运维人员应该掌握哪些常用技术
  7. CPU使用率的几个重要指标含义列举
  8. 200m的共享虚拟主机够用吗
  9. IDC时评:你对边缘计算有多少误解?
  10. 什么是物理层接口?—Vecloud 微云