简
介
\color{#0000FF}{简介}
简介
Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了C3P0,DBCP,PROXOOL等DB池的优点,同时加入了日志监控 Druid 可以很好的监控DB池连接和SQL执行的情况,天生就是针对监控而生的DB连接池 springBoot2.0 以上默认的是使用Hikari 数据源,可以说Hikari ,Druid 都是当前Java Web上最优秀的数据源
添
加
d
r
u
i
d
依
赖
\color{#0000FF}{添加druid依赖}
添加druid依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.9</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
查
看
当
前
s
p
r
i
n
g
B
o
o
t
数
据
源
类
型
\color{#0000FF}{查看当前springBoot数据源类型}
查看当前springBoot数据源类型
编
写
测
试
类
\color{#0000FF}{编写测试类}
编写测试类
package com.dragon.jdbc;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
@SpringBootTest
class JdbcApplicationTests {
@Resource
DataSource dataSource;
@Test
void contextLoads() throws SQLException {
System.out.println(dataSource.getClass());
Connection connection = dataSource.getConnection();
System.out.println(dataSource.getConnection());
connection.close();
}
}
运
行
结
果
\color{#0000FF}{运行结果}
运行结果
1、class com.zaxxer.hikari.HikariDataSource
2、HikariProxyConnection@1789376127 wrapping com.mysql.cj.jdbc.ConnectionImpl@6bcc3f27
由
此
可
以
得
到
s
p
r
i
n
g
本
身
集
成
了
h
i
k
a
r
i
数
据
库
连
接
池
\color{#FF00FF}{由此可以得到spring本身集成了hikari数据库连接池}
由此可以得到spring本身集成了hikari数据库连接池
修
改
数
据
源
类
型
\color{#0000FF}{修改数据源类型}
修改数据源类型
spring:
datasource:
username: root
password: woailimin
url: jdbc:mysql://localhost:3306/game?useUnicode=ture&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
运
行
结
果
\color{#0000FF}{运行结果}
运行结果
使
用
同
一
个
测
试
类
得
到
结
果
为
\color{#FF00FF}{使用同一个测试类得到结果为}
使用同一个测试类得到结果为
1、class com.alibaba.druid.pool.DruidDataSource
2、com.mysql.cj.jdbc.ConnectionImpl@4b0f2299
由
此
可
以
得
到
s
p
r
i
n
g
中
h
i
k
a
r
i
数
据
库
连
接
池
替
换
为
d
r
u
i
d
\color{#FF00FF}{由此可以得到spring中hikari数据库连接池替换为druid}
由此可以得到spring中hikari数据库连接池替换为druid
d
u
r
i
d
配
置
参
数
\color{#0000FF}{durid配置参数}
durid配置参数
spring:
datasource:
username: root
password: ~~~~~~
url: jdbc:mysql://localhost:3306/game?useUnicode=ture&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 30000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
connectProperties: druid.stat.mergeSql=true;durid.stat.slowSqlMillis=500
useGlobalDataSourceStat: true
d
u
r
i
d
配
置
类
\color{#0000FF}{durid配置类}
durid配置类
配
置
类
实
例
\color{#0000FF}{配置类实例}
配置类实例
package com.dragon.jdbc.DruidConfig;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
import java.util.HashMap;
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDataSource() {
return new DruidDataSource();
}
@Bean
public ServletRegistrationBean StatViewServlet() {
ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
HashMap<String, String> initParameters = new HashMap<>();
initParameters.put("loginUsername","MJL");
initParameters.put("loginPassword","1314");
initParameters.put("allow","");
initParameters.put("MJ","192.133.3.3");
bean.setInitParameters(initParameters);
return bean;
}
}
结
果
展
示
\color{#0000FF}{结果展示}
结果展示
在
浏
览
器
地
址
栏
输
入
:
\color{#FF00FF}{在浏览器地址栏输入:}
在浏览器地址栏输入: http://localhost:8080/druid/login.html
|