上一篇文章主要讲解了如何再Matrix-Web中使用Mybatis-Plus,Mybatis-Plus作为Orm框架,连接数据库需要连接数据库的依赖。WEB 系统高并发环境下,频繁的进行数据库连接操作,造成系统技术瓶颈问题(无效的资源开销),通过为数据库连接为建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。
数据库连接池有很多,比如c3p0、Druid、Hikari等。大家常用的连接池应该是阿里开源的Druid,Druid不仅是连接池,而且带有监控。在Matrix-Web中,选择的Druid作为数据库连接池。Hikari作为Spring Boot官方推荐的连接池,在这里也讲解一下。
在Spring Boot中使用Druid Druid是阿里开发的一个数据库连接池,在国内比较的流行,具有以下的特性:
- 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
- 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
- SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
- 扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。
mysql
mysql-connector-java
${mysql.version}
com.alibaba
druid-spring-boot-starter
${durid.version}
在工程的配置文件做以下的配置:
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/druid
spring.datasource.username=root
spring.datasource.password=root
这样就在Spring Boot中整合了Durid连接池。
在Spring Boot中使用HikariCP HikariCP是一个高性能的JDBC连接池,基于BoneCP做了不少的改进和优化。
文章图片
从上述结果可以看出HikariCP的性能远高于c3p0、tomcat等连接池,以致后来BoneCP作者都放弃了维护,在Github项目主页推荐大家使用HikariCP。另外,Spring Boot将在2.0版本中把HikariCP作为其默认的JDBC连接池。
在Spring Boot中使用HikariCP连接池,在工程pom文件引入HikariCP依赖,版本为3.3.1。
com.zaxxer
HikariCP
${HikariCP.version}
然后在工程的配置文件,加上以下配置:
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/druid
spring.datasource.username=root
spring.datasource.password=root
总结 本篇文章主要讲解了在SrpingBoot使用数据库连接池,包括Durid和HikariCP。在Matrix-Web中,这两种数据库连接池都是支持的。下篇文章将讲解数据库的读写分离。
参考资料 https://segmentfault.com/q/1010000007865307/a-1020000007871768
http://zongming.net/read-1373
https://www.jianshu.com/p/dd0c2b0ed202
源码下载 https://github.com/forezp/matrix-web
往期文章:
跟我学Springboot开发后端管理系统1:概述
跟我学Springboot开发后端管理系统2:Mybatis-Plus实战
【数据库|跟我学Springboot开发后端管理系统4(数据库连接池Druid和HikariCP)】跟我学Springboot开发后端管理系统3:Mybatis-Plus实战2
推荐阅读
- redis|SpringBoot 配置 Redis 连接池
- 数据库|SpringBoot数据库连接池Druid的配置及log4j:WARN的解决
- 技术干货|SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- Java|Springboot配置Druid或Hikari连接池(并开启MyBatisPlus事务)
- java|JDK各个版本的新特性jdk1.5-jdk8
- java|SpringBoot 官方推荐,连接池,太快了!
- 数据库|springboot项目整合druid数据库连接池
- java|SpringBoot整合Druid数据连接池
- java|设计模式-状态模式