springboot+mybatis-plus+druid

一、引入依赖

<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>
            <!--  引入druid      -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.4</version>
        </dependency>
        <!--  引入mybatis-plus      -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>

二、配置druid参数

主要配置:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/jdbctest?useUnicode=true&&characterEncoding=utf-8&&useSSL=false
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    druid:
      stat-view-servlet:
        # 默认true 内置监控页面首页/druid/index.html
        enabled: true
        url-pattern: /druid/*
        # 允许清空统计数据
        reset-enable: true
        login-username: root
        login-password: 123456
        # IP白名单 多个逗号分隔
        allow:
        # IP黑名单
        deny:
      filter:
        stat:
          # 开启监控sql
          enabled: true
          # 显示并标注慢sql 默认当超过3秒显示
          log-slow-sql: true
          slow-sql-millis: 3000
          merge-sql: true
        # 防SQL注入过滤
        wall:
          config:
            # 允许多条sql同时执行
            multi-statement-allow: true

(更多配置)

spring:
  datasource:
    druid:   #注意配置url、username、password、driver以外的其他配置必须在druid下写,这样会自动包装到DruidDataSourceWrapper里面
      #   数据源其他配置
      initialSize: 5
      minIdle: 5
      maxActive: 20
      maxWait: 60000
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      poolPreparedStatements: true
      maxPoolPreparedStatementPerConnectionSize: 20
      useGlobalDataSourceStat: true
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
      filters: stat,wall

    #自定义sql文件名,点进去后这个是一个list
    schema:
      - classpath:department.sql #可以指定多个文件

三、搭建测试环境

3.1 mapper

package com.zhmsky.springboot_druid.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhmsky.springboot_druid.pojo.Account;
import org.apache.ibatis.annotations.Mapper;

/**
 * @author zhmsky
 * @date 2022/2/10 16:50
 */
@Mapper
public interface AccountMapper extends BaseMapper<Account> {
}

3.2 pojo

package com.zhmsky.springboot_druid.pojo;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author zhmsky
 * @date 2022/2/10 16:46
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("account")
public class Account {
    private Integer id;
    private String name;
    private String money;
}

3.3 service

package com.zhmsky.springboot_druid.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhmsky.springboot_druid.pojo.Account;

import java.util.List;

/**
 * @author zhmsky
 * @date 2022/2/10 16:52
 */
public interface AccountService extends IService<Account> {
    List<Account> getAllAccount();
}

3.4 impl

package com.zhmsky.springboot_druid.service.serviceImpl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhmsky.springboot_druid.mapper.AccountMapper;
import com.zhmsky.springboot_druid.pojo.Account;
import com.zhmsky.springboot_druid.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author zhmsky
 * @date 2022/2/10 16:53
 */
@Service
public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> implements AccountService {

    @Autowired
    private AccountMapper accountMapper;

    @Override
    public List<Account> getAllAccount() {
        QueryWrapper<Account> wrapper = new QueryWrapper<>();
        wrapper.eq("id",2);
        List<Account> accounts = accountMapper.selectList(wrapper);
        return accounts;
    }

}

3.4 测试类

package com.zhmsky.springboot_druid;

import com.zhmsky.springboot_druid.service.AccountService;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootDruidApplication.class)
class SpringbootDruidApplicationTests {
    @Autowired
    private AccountService accountService;

    @Test
    void contextLoads() {
    }

    @Test
    public void test(){
        System.out.println(accountService.getAllAccount());
    }

}

结果

在这里插入图片描述
已成功使用druid连接池


版权声明:本文为weixin_42194695原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。