一、引入依赖
<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版权协议,转载请附上原文出处链接和本声明。