依赖引入
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
初始化DruidDataSource
非常重要:必须要有这一步,不然sql不会被监控。
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDataSource(){
return new DruidDataSource();
}
}
TestController测试代码
package com.druid.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
public class TestController {
@Autowired
JdbcTemplate jdbcTemplate;
@GetMapping("/mmplist")
public List<Map<String,Object>> mmpList(){
String sql = "select * from mmp";
List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
return maps;
}
@GetMapping("/addMmp")
public String addUser(){
String sql = "insert into mmp(no,name) values(1111,'zhangsan')";
jdbcTemplate.update(sql);
return "success";
}
@GetMapping("/updateMmp/{id}")
public String updateMmp(@PathVariable("id") Integer id){
String sql = "update mmp set name=? where no = "+id;
String name = "lisi";
jdbcTemplate.update(sql,name);
return "update success";
}
@GetMapping("/deleteMmp/{id}")
public String deleteMmp(@PathVariable("id")Integer id){
String sql = "delete from mmp where no = "+id;
jdbcTemplate.update(sql);
return "delete success";
}
}
数据源配置
####################################druid连接池配置-开始##########################################
#连接池类型
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.filters=stat
### 配置初始化大小、最小、最大
#数据库连接池初始化大小
spring.datasource.initialSize=100
#最小空闲数
spring.datasource.minIdle=500
#最大活跃数
spring.datasource.maxActive=1000
#配置获取连接等待超时的时间
spring.datasource.maxWait=60000
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
#配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
#测试连接
spring.datasource.validationQuery=select 'x'
#申请连接的时候检测,建议配置为true,不影响性能,并且保证安全性
spring.datasource.testWhileIdle=true
#获取连接时执行检测,建议关闭,影响性能
spring.datasource.testOnBorrow=false
#归还连接时执行检测,建议关闭,影响性能
spring.datasource.testOnReturn=false
#是否开启PSCache,PSCache对支持游标的数据库性能提升巨大,oracle建议开启,mysql下建议关闭
spring.datasource.poolPreparedStatements=false
#开启poolPreparedStatements后生效
spring.datasource.maxOpenPreparedStatements=20
#配置扩展插件,常用的插件有=>stat:监控统计 log4j2:日志 wall:防御sql注入
pring.datasource.filters.commons-log.connection-logger-name=stat,wall,log4j2,logback,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=2000
# Druid WebStatFilter配置,url统计
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.druid.web-stat-filter.exclusions='*.gif,*.png,*.jpg,*.html,*.js,*.css,*.ico,/druid/*'
# Druid StatViewServlet配置,监控界面配置
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.stat-view-servlet.reset-enable=true
spring.datasource.druid.stat-view-servlet.login-username=root
spring.datasource.druid.stat-view-servlet.login-password=123456
########################druid连接池配置-结束##########################################
#数据库配置
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://127.0.0.1/spring_boot_test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
效果
调用:http://127.0.0.1:8080/mmplist
druid地址:http://127.0.0.1:8080/druid/login.html
root 123456
代码地址
https://gitee.com/zhang798/spring-demo.git
分支 springBoot_druid
git clone https://gitee.com/zhang798/spring-demo.git -b springBoot_druid