SpringBoot整合JDBC---整合Mybatis----配置Druid

testWhileIdle: true

testOnBorrow: false

testOnReturn: false

poolPreparedStatements: true

#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入

#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority

#则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j

filters: stat,wall,log4j

maxPoolPreparedStatementPerConnectionSize: 20

useGlobalDataSourceStat: true

connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

⑤ 引入log4j 依赖

log4j

log4j

1.2.17

⑥现在需要程序员自己为 DruidDataSource 绑定全局配置文件中的参数,再添加到容器中,而不再使用 Spring Boot 的自动生成了;我们需要 自己添加 DruidDataSource 组件到容器中,并绑定属性;

@Configuration

public class DruidConfig {

/*

将自定义的 Druid数据源添加到容器中,不再让 Spring Boot 自动创建

绑定全局配置文件中的 druid 数据源属性到 com.alibaba.druid.pool.DruidDataSource从而让它们生效

@ConfigurationProperties(prefix = “spring.datasource”):作用就是将 全局配置文件中

前缀为 spring.datasource的属性值注入到 com.alibaba.druid.pool.DruidDataSource 的同名参数中

*/

@ConfigurationProperties(prefix = “spring.datasource”)

@Bean

public DataSource druidDataSource() {

return new DruidDataSource();

}

}

配置Druid数据源监控

Druid 数据源具有监控的功能,并提供了一个 web 界面方便用户查看,类似安装 路由器 时,人家也提供了一个默认的 web 页面。

所以第一步需要设置 Druid 的后台管理页面,比如 登录账号、密码 等;配置后台管理;

package com.ty.config;

import com.alibaba.druid.pool.DruidDataSource;

import com.alibaba.druid.support.http.StatViewServlet;

import com.alibaba.druid.support.http.WebStatFilter;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.boot.web.servlet.FilterRegistrationBean;

import org.springframework.boot.web.servlet.ServletRegistrationBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import javax.servlet.Filter;

import javax.sql.DataSource;

import java.util.Arrays;

import java.util.HashMap;

import java.util.Map;

@Configuration

public class DruidConfiguration {

@Bean

@ConfigurationProperties(prefix = “spring.datasource”)

public DataSource druidDataSource(){

return new DruidDataSource();

}

@Bean

public ServletRegistrationBean servletRegistrationBean(){

ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), “/druid/*”);

Map initParm =new HashMap();

initParm.put(“loginUsername”,“root”);

initParm.put(“loginPassword”,“123456”);

initParm.put(“allow”,“”);

bean.setInitParameters(initParm);

return bean;

}

@Bean

public FilterRegistrationBean filterRegistrationBean(){

FilterRegistrationBean bean=new FilterRegistrationBean();

bean.setFilter(new WebStatFilter());

Map<String,String> initParam= new HashMap<>();

initParam.put(“exclusions”,“.js,.css,/druid/,/jdbc/”);

bean.setInitParameters(initParam);

bean.setUrlPatterns(Arrays.asList(“/*”));

return bean;

}

}

整合Mybatis

①导入 MyBatis 所需要的依赖

org.mybatis.spring.boot

mybatis-spring-boot-starter

2.1.1

②配置数据库连接信息(不变)

spring:

datasource:

username: root

password: password

url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8

driver-class-name: com.mysql.cj.jdbc.Driver

type: com.alibaba.druid.pool.DruidDataSource

#Spring Boot 默认是不注入这些属性值的,需要自己绑定

#druid 数据源专有配置

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

#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入

#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority

#则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j

filters: stat,wall,log4j

maxPoolPreparedStatementPerConnectionSize: 20

useGlobalDataSourceStat: true

connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

mybatis:

mapper-locations: clsspath:com/ty/mapper/*Mapper.xml

再配置DruidDataSource

③测试数据库连接是否成功

④创建实体类,导入 Lombok!

对于@Mapper注解,在纯mybatis项目中,我们并没有加此注解,因为没有其他层需要对其进行引用,但我们是通过指定了xml文件通过反射的形式来获取dao的实例,直接操作dao层的 SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); List userList = mapper.getUserList();

而对于SpringBoot项目,我们是在service层接口的实现类来获取bean实例,因此@Mapper就是将其注入到Spring容器中

⑤对应的UserMapper.xml

⑥maven 配置资源过滤

src/main/java

**/*.properties

**/*.xml

true

src/main/resources

**/*.properties

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
img-kOVBlulz-1715075242388)]

[外链图片转存中…(img-Mk8AWmgu-1715075242388)]

[外链图片转存中…(img-80X4YuGS-1715075242389)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值