携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
大家好! 我是慕歌,一只想教你学习 Spring Boot的野生coder! 欢迎来到慕歌的 Sping boot系列教程,希望通过这个教程带大家搭建基础的 Spring Boot项目,该教程所有知识点均来源于本人的真实开发!
前言
在我们学习spring boot 的过程中,如何连接数据库,实现数据交互是绕不过一个问题。在spring boot 中就为我们提供了一个优雅数据处理组件--mybatis-plus,他是我们熟知的组件mybatis 的进阶版本在这个版本中,为我们提供了很多便利的组件如代码生成器,分页组件和基本CRUD接口等... 。 下面我们开始学习,如何在spring boot 中使用mybatis!
mybatis-plus 官网: www.mybatis-plus.com
mybatis-plus 文档地址:www.mybatis-plus.com/guide
引入mybatis-plus
mybatis-plus 依赖
在spring boot 工程的pom.xml 中导入该依赖
<!-- mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- mybatis-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
mysql 和mybatis-plus 的工程无法依赖父工程的版本,需要我们指定引入包的版本,建议使用最新版本的前一个版本,最新版本可能存在未知BUG ,对于新手不太友好,如果发现出现版本冲突,需要更换成需要的版本
mybatis-plus 配置
在引入包之后需要我们配置自己的数据库配置,这里选择的数据源是 hikari ,这是mybatis-plus 的默认数据源,大家也可以导入自己需要的数据源,配置内容:
spring:
# 数据库
datasource:
# 类型
type: com.zaxxer.hikari.HikariDataSource
# 驱动
driver-class-name: com.mysql.cj.jdbc.Driver
# 数据库
url: jdbc:mysql://localhost:3306/***?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
# 账号
username: ***
# 密码
password: ***
# 将***部分替换成自己的数据源
在配置mysql 数据库配置后,还可进行mybatis-plus 的配置,辅助开发:
#mybatis 配置
mybatis-plus:
configuration:
# 日志模式
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# xml扫描地址
mapper-locations: classpath:mapper/**/*.xml
mybatis 接入spring boot
将mybatis-plus 的部分配置注入到spring boot 中,进行统一管理,需要进行一下配置:
/**
* mybatis-plus 配置
*/
@Configuration
@MapperScan("channel.cret.mapper")
public class MybatisConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
//对象
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//数据库分页
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
/*乐观锁
需要在数据库表字段添加version 通过version 校验数据库的版本然后触发锁机制
乐观锁: 只在数据库的数据需要提交的最后进行校验
悲观锁: 在进行数据操纵时直接拒绝其他请求的访问导致读操作也失效
*/
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
}
结语
这一章的分享到这里就结束了,下一节中还将带来mybatis-plus 核心功能的分享!
如果您觉得本文不错,欢迎点赞支持,您的关注是我坚持的动力!