Druid 学习第一章–数据库连接池的初步使用
1.jar包导入
springboot項目+mybatis+druid的普通web項目的pom.xml文件
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF8</project.reporting.outputEncoding>
<spring-boot.version>2.3.0.RELEASE</spring-boot.version>
<druid.version>1.1.20</druid.version>
<druid-springboot.version>1.1.20</druid-springboot.version>
<mysql-jdbc.version>5.1.49</mysql-jdbc.version>
<mybatis-springboot.version>2.1.2</mybatis-springboot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-springboot.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>${mysql-jdbc.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid-springboot.version}</version>
</dependency>
</dependencies>
2.druid-springboot的自动化配置
spring:
application:
# 应用名称
name: druid-spring-boot
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
jdbc-url: jdbc:mysql://127.0.0.1:3306/comm?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
#初始化连接个数
initial-size: 10
#最大连接池数量
max-active: 100
#最小连接池的数量
min-idle: 10
#获取连接的最大等待时间
max-wait: 60000
#是否支持缓存,orcale(支持游标的数据库)支持提高性能,mysql建议关闭
pool-prepared-statements: false
#缓存每个连接的大小PSCache
max-pool-prepared-statement-per-connection-size: 20
#检测查询语句是否有效
validation-query: SELECT 1 FROM DUAL
# validation-query-timeout: 5000
#申请连接时执行上述检测
test-on-borrow: false
#归还连接时执行上述连接
test-on-return: false
#检测查询,建议打开不影响性能,如果空闲时间大于time-between-eviction-runs-millis,执行检测
test-while-idle: true
#检测连接的空闲时间
time-between-eviction-runs-millis: 60000
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
#filters: #配置多个英文逗号分隔(统计,sql注入,log4j过滤)
filters: stat,wall
#配置监控单元
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: admin
login-password: 123
3.项目启动监控单元的查看
监控单元的配置,druid不仅仅是一个数据库连接池,他还具有充当监控模块的功能
#监控单元的配置模块,开启druid的监控模块,
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: admin
login-password: 123
1.启动项目后访问 http://127.0.0.1:8080/demo/druid/ ip和端口号和项目访问路径,更具自己配置的来,进入登录界面,输入上述配置的用户名密码
2.进入首页之后,点击进入数据源,数据源没有显示,不要着急,不是bug,是因为你还没有请求数据库,自己写个test接口,访问一下数据库就可以成功看到了。
3.监控功能的展示,成功访问一次数据后,我们就可以在本界面看到详细的数据源的配置信息
druid还具有详细的sql执行查询
druid还具有很多强大的功能,更多强大的功能,多看看druid的官方github
贴出我自己测试所用的项目目录