SpringBoot项目使用druid

依赖引入

<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
在这里插入图片描述

SpringBoot学习之路

代码地址
https://gitee.com/zhang798/spring-demo.git
分支 springBoot_druid

git clone https://gitee.com/zhang798/spring-demo.git -b springBoot_druid
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值