2

一、引言

Mybatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它已经被大规模地应用在实际项目中,极大地提高了开发效率。

Mybatis-Plus主要有以下特点:

  1. 无侵入(不会对现有工程造成影响)
  2. 强大的CURD操作(内置通用Mapper、通用Service来实现单表的大部分CURD操作)
  3. 内置多种插件(分页插件、性能分析插件、全局拦截插件)

二、快速整合

这里我使用的Spring Boot版本:2.5.14

2.1 引入依赖

在pom文件中引入mybatis-plus-boot-starter依赖,这里使用版本3.5.1,如下

    <!-- springboot集成mybatis-plus -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.5.1</version>
    </dependency>

    <!-- mysql驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.29</version>
    </dependency>

2.2 配置Mybatis-Plus及数据源

下面是mybatis-plus的部分配置项,具体配置可参考官网https://baomidou.com/pages/56bac0/

server:
  port: 8081

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8

mybatis-plus:
  # 如果是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml
  # 如果是放在resource目录 classpath:/mapper/*Mapper.xml
  mapper-locations: classpath:/mapper/**/*.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.kamier.springboot.mybatisplus.domain.*
  configuration:
    #开启 Mybatis 二级缓存,默认为 true
    cache-enabled: false
    #配置JdbcTypeForNull, oracle数据库必须配置
    jdbc-type-for-null: 'null'
  global-config:
    db-config:
      # AUTO:数据库自增  INPUT:自行设置  ASSIGN_ID:雪花算法id  ASSIGN_UUID:UUID
      id-type: AUTO
      # 逻辑删除配置(下面3个配置)
      logic-delete-field: del_flag
      logic-delete-value: 1
      logic-not-delete-value: 0

2.3 创建数据库实体类、Service接口及其实现类、Mapper接口、xml文件

这里官方推荐使用MybatisX插件来自动生成这些文件,在idea中搜索MybatisX插件安装即可(注意:如果项目不需要自定义编写复杂的sql语句,可以不需要生成xml文件
image.png
安装之后,右侧栏Database连接数据库后,可选中多张表,右键点击MybatisX-Generator,配置选项可参考下图
image.png

image.png
点击Finish即可生成文件,下图红框中的就是自动生成的文件
image.png

可以来看下生成的类是什么样的

  • User.java(@TableName指定表名,@TableId指定主键,@TableField指定字段名
    image.png
  • UserMapper.java(继承BaseMapper<实体类>
    image.png
  • UserService.java(继承IService<实体类>
    image.png
  • UserServiceImpl.java(继承ServiceImpl<Mapper接口,实体类>
    image.png
  • UserMapper.xml(namespace为Mapper接口全限定名
    image.png

2.4 扫描Mapper

在启动类上使用@MapperScan来扫描Mapper,如下图
image.png

2.5 测试验证

编写一个简单的Controller,如下

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("list")
    public R list() {
        return R.ok(userService.list());
    }
}

浏览器输入http://localhost:8081/user/list,获取用户列表
image.png

三、结语

Spring Boot快速整合Mybatis-Plus到这里就结束了,Mybatis-Plus还有许多有用的功能,包括多数据源、内置插件、条件构造器等等,这里不一一介绍了,有兴趣的同学可以自行去官网查阅。


kamier
1.5k 声望493 粉丝