@Test
void contextLoads()
{
Long num = jdbcTemplate.queryForObject("select count(*) from employee", Long.class);
System.out.println("查询到的记录数为: "+num);
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/9c494be546d34c66884571021ed5c76d.png)
* * *
[](
)使用Druid数据源
=========================================================================
[](
)druid官方github地址
------------------------------------------------------------------------------
[druid官方github地址](
)
[github如果打不开,可以看这里](
)
> 整合第三方技术的两种方式:
> 自定义
> 找starter
* * *
[](
)自定义方式
--------------------------------------------------------------------
### [](
)创建数据源
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.17</version>
</dependency>
<bean id=“dataSource” class=“com.alibaba.druid.pool.DruidDataSource”
destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxActive" value="20" />
<property name="initialSize" value="1" />
<property name="maxWait" value="60000" />
<property name="minIdle" value="1" />
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="poolPreparedStatements" value="true" />
<property name="maxOpenPreparedStatements" value="20" />
**springboot的做法: 在配置类中给容器中直接注入一个数据源**
@Configuration
public class WebConfig implements WebMvcConfigurer
{
//给容器中放置一个数据源
@Bean
//将注入容器的DataSource组件的属性与配置文件中spring.datasource下面的值进行绑定
@ConfigurationProperties("spring.datasource")
public DataSource dataSource()
{
return new DruidDataSource();
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/cf80730edb4c4314be71de645925ad5a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUzMTU3MTcz,size_16,color_FFFFFF,t_70)
* * *
[](
)Driud内置监控页面功能开启
------------------------------------------------------------------------------
![在这里插入图片描述](https://img-blog.csdnimg.cn/75be94a08efa41518b2fe86b6ceb1baf.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUzMTU3MTcz,size_16,color_FFFFFF,t_70)
**需要在容器中放入一个servlet,这样才能开启监控功能**
//配置Druid的监控页面功能
@Bean
public ServletRegistrationBean statViewServlet()
{
StatViewServlet statViewServlet=new StatViewServlet();
//配置该servl拦截路径
ServletRegistrationBean<StatViewServlet> serlvet = new ServletRegistrationBean<>(statViewServlet, "/druid/*");
return serlvet;
}
**只是打开了监控的页面**
![在这里插入图片描述](https://img-blog.csdnimg.cn/102ee7407c5e474384cbf958b0870ef3.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUzMTU3MTcz,size_16,color_FFFFFF,t_70)
* * *
[](
)Driud监控统计功能开启(sql监控)
-----------------------------------------------------------------------------------
![在这里插入图片描述](https://img-blog.csdnimg.cn/eb443503a03b41ae84f1d252bd86010b.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUzMTU3MTcz,size_16,color_FFFFFF,t_70)
//给容器中放置一个数据源
@Bean
//将注入容器的DataSource组件的属性与配置文件中spring.datasource下面的值进行绑定
@ConfigurationProperties("spring.datasource")
public DataSource dataSource() throws SQLException {
DruidDataSource druidDataSource = new DruidDataSource();
//加入监控功能
druidDataSource.setFilters("stat");
return druidDataSource;
}
**当我们执行一次sql语句时,就可以去查询一下这个语句执行的相关信息**
![在这里插入图片描述](https://img-blog.csdnimg.cn/8f4535db13024d04a0f1f724a0a33558.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUzMTU3MTcz,size_16,color_FFFFFF,t_70)
* * *
[](
)web-jdbc关联的监控数据
------------------------------------------------------------------------------
//WebStatFilter用于采集web-jdbc关联监控的数据
@Bean
public FilterRegistrationBean WebStatFilter(){
WebStatFilter webStatFilter=new WebStatFilter();
FilterRegistrationBean<WebStatFilter> fb= new FilterRegistrationBean<>(webStatFilter);
fb.setUrlPatterns(Arrays.asList("/*"));
fb.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return fb;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/f6f63383c6424a99bf37e0fef11e347a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUzMTU3MTcz,size_16,color_FFFFFF,t_70)
* * *
[](
)开启防火墙功能
----------------------------------------------------------------------
//给容器中放置一个数据源
@Bean
//将注入容器的DataSource组件的属性与配置文件中spring.datasource下面的值进行绑定
@ConfigurationProperties("spring.datasource")
public DataSource dataSource() throws SQLException {
DruidDataSource druidDataSource = new DruidDataSource();
//加入监控功能, wall:开启防火墙功能
druidDataSource.setFilters("stat,wall");
return druidDataSource;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/064f0d64dc464977807703c17c9bea49.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUzMTU3MTcz,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/21d31c1e53ff4d8c8fe4ac782aef01f0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUzMTU3MTcz,size_16,color_FFFFFF,t_70)
* * *
[](
)用户名和密码登录数据监控页面,开启监控页面的时候配置初始化参数即可
------------------------------------------------------------------------------------------------
//配置Druid的监控页面功能
@Bean
public ServletRegistrationBean statViewServlet()
{
StatViewServlet statViewServlet=new StatViewServlet();
//配置该servl拦截路径
ServletRegistrationBean<StatViewServlet> serlvet = new ServletRegistrationBean<>(statViewServlet, "/druid/*");
serlvet.addInitParameter("loginUsername","大忽悠");
serlvet.addInitParameter("loginPassword","123456");
return serlvet;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/81c45f672f144c4094dfe1f40a35e65e.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUzMTU3MTcz,size_16,color_FFFFFF,t_70)
* * *
[](
)使用官方starter方式
----------------------------------------------------------------------------
### [](
)1、引入druid-starter
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
### [](
)2、分析自动配置
**扩展配置项 spring.datasource.druid,在主配置文件中以这个前缀开头,就可以修改相关属性配置**
**DruidSpringAopConfiguration.class, 监控SpringBean的;配置项:spring.datasource.druid.aop-patterns**
**DruidStatViewServletConfiguration.class, 监控页的配置:spring.datasource.druid.stat-view-servlet;默认开启**
**DruidWebStatFilterConfiguration.class, web监控配置;spring.datasource.druid.web-stat-filter;默认开启**
**DruidFilterConfiguration.class}) 所有Druid自己filter的配置**
private static final String FILTER_STAT_PREFIX = “spring.datasource.druid.filter.stat”;
private static final String FILTER_CONFIG_PREFIX = "spring.datasource.druid.filter.config";
private static final String FILTER_ENCODING_PREFIX = "spring.datasource.druid.filter.encoding";
private static final String FILTER_SLF4J_PREFIX = "spring.datasource.druid.filter.slf4j";
private static final String FILTER_LOG4J_PREFIX = "spring.datasource.druid.filter.log4j";
private static final String FILTER_LOG4J2_PREFIX = "spring.datasource.druid.filter.log4j2";
private static final String FILTER_COMMONS_LOG_PREFIX = "spring.datasource.druid.filter.commons-log";
private static final String FILTER_WALL_PREFIX = "spring.datasource.druid.filter.wall";
* * *
[](
)配置文件配置实例
-----------------------------------------------------------------------
spring:
datasource:
url: jdbc:mysql://localhost:3306/db_account
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
druid:
aop-patterns: com.atguigu.admin.* #监控SpringBean
filters: stat,wall,slf4j # 底层开启功能,stat(sql监控),wall(防火墙),slf4j(日志)
stat-view-servlet: # 配置监控页功能
enabled: true
login-username: admin
login-password: admin
resetEnable: false #禁用重置按钮
web-stat-filter: # 监控web--url监控
enabled: true
urlPattern: /*
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
filter:
stat: # 对上面filters里面的stat的详细配置
slow-sql-millis: 1000
logSlowSql: true
enabled: true
wall:
enabled: true
config:
drop-table-allow: false
### [](
)官方文档
[官方文档](
)
配置项列表[https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8](
)
* * *
[](
)整合MyBaits
========================================================================
**引入starter**
**SpringBoot官方的Starter:spring-boot-starter-**\*
# 最后
金三银四马上就到了,希望大家能好好学习一下这些技术点
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](
)**
学习视频:
![](https://img-blog.csdnimg.cn/img_convert/9c76df21e2290fbe8a5168655784cb63.png)
大厂面试真题:
enabled: true
config:
drop-table-allow: false
[](
)官方文档
[官方文档](
)
配置项列表[https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8](
)
[](
)整合MyBaits
========================================================================
引入starter
SpringBoot官方的Starter:spring-boot-starter-*
最后
金三银四马上就到了,希望大家能好好学习一下这些技术点
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](
)**
学习视频:
[外链图片转存中…(img-9j8OhwiV-1631182559103)]
大厂面试真题: