连接池:
C3P0
:是一个开放源代码的
JDBC
连接池,它在
lib
目录中与
Hibernate
一起发布,包括了实现
jdbc3
和
jdbc2
扩展规范说明的
Connection
和
Statement
池的
DataSources
对象。
Proxool
:是一个
Java SQL Driver
驱动程序,提供了对选择的其它类型的驱动程序的连接池封装。可以
非常简单的移植到现存的代码中,完全可配置,快速、成熟、健壮。可以透明地为现存的
JDBC
驱动程序
增加连接池功能。
Jakarta DBCP
:
DBCP
是一个依赖
Jakartacommons-pool
对象池机制的数据库连接池。
DBCP
可以直接的
在应用程序中使用。
BoneCP
:是一个快速、开源的数据库连接池。帮用户管理数据连接,让应用程序能更快速地访问数据
库。比
C3P0/DBCP
连接池速度快
25
倍。
Druid
:
Druid
不仅是一个数据库连接池,还包含一个
ProxyDriver
(代理程序)、一系列内置的
JDBC
组
件库、一个
SQL
Parser
。支持所有
JDBC
兼容的数据库,包括
Oracle
、
MySql
、
Derby
、
Postgresql
、
SQL Server
、
H2
等
一、集成连接池Druid
1、导入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.8</version> </dependency>
二、更改yml文件
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/mybatis_ssm?useUnicode=true&serverTimezone=Asia/Shanghai&useSSL=false&characterEncoding=utf-8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 5 # 初始化大小
min-idle: 10 # 最小连接数
max-active: 20 # 最大连接数
max-wait: 60000 # 获取连接时的最大等待时间
min-evictable-idle-time-millis: 300000 # 一个连接在池中最小生存的时间,单位是毫秒
time-between-eviction-runs-millis: 60000 # 多久才进行一次检测需要关闭的空闲连接,单位是毫秒
filters: stat # 配置扩展插件:stat-监控统计,log4j-日志,wall-防火墙(防止SQL注入),去掉后,监控界面的sql无法统计 ,wall
validation-query: SELECT 1 # 检测连接是否有效的 SQL语句,为空时以下三个配置均无效
test-on-borrow: true # 申请连接时执行validationQuery检测连接是否有效,默认true,开启后会降低性能
test-on-return: true # 归还连接时执行validationQuery检测连接是否有效,默认false,开启后会降低性能
test-while-idle: true # 申请连接时如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效,默认false,建议开启,不影响性能
stat-view-servlet:
enabled: true # 是否开启 StatViewServlet
allow: 127.0.0.1 # 访问监控页面 白名单,默认127.0.0.1
deny: 192.168.56.1 # 访问监控页面 黑名单
login-username: admin # 访问监控页面 登陆账号
login-password: 123 # 访问监控页面 登陆密码
filter:
stat:
enabled: true # 是否开启 FilterStat,默认true
log-slow-sql: true # 是否开启 慢SQL 记录,默认false
slow-sql-millis: 5000 # 慢 SQL 的标准,默认 3000,单位:毫秒
merge-sql: false # 合并多个连接池的监控数据,默认false
redis:
database: 0 #数据库索引
host: 47.98.209.83 #主机位置
port: 6379 #端口
password: 123456 #密码
jedis:
pool:
max-active: 8 #最大连接数
max-wait: -1 #最大阻塞等待时间(负数表示没限制)
max-idle: 8 #最大空闲
min-idle: 0 #最小空闲
timeout: 10000 #连接超时时间
logging:
level:
com.smy.code.mapper: debug
三、controller
studentcontroller
package com.smy.code.controller;
import com.smy.code.service.StudentService;
import com.smy.code.util.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("/stu")
public class StudentController {
@Autowired
private StudentService service;
@GetMapping("/all")
public Object index(HttpServletRequest request){
PageBean pageBean = new PageBean();
pageBean.setRequest(request);
return service.findPager(pageBean);
}
}
http://localhost:8080/druid/sql.html
能够看到执行时长