MyBatis-Plus课堂笔记

MyBatis-Plus

    • MyBatis-Plus简介
        • 1.pom.xml 引入MyBAtis-Plus的jar坐标,覆盖Spring-Mybatis
          • 2.修改application.yml配置文件
          • 开启AR功能(ActiveRecord)领域模型

MyBatis-Plus简介

MyBatis-Plus是MaBatis的增强工具,在MyBayis的基础上只做增强,不做改变。MP会内置集成部分SQL方法,可以直接使用,而不用一个SQL需求对应一个Mybatis下的一个SQL条目。

1.pom.xml 引入MyBAtis-Plus的jar坐标,覆盖Spring-Mybatis

MyBatis-Plus课堂笔记_第1张图片

2.修改application.yml配置文件

MyBatis-Plus课堂笔记_第2张图片

开启AR功能(ActiveRecord)领域模型

1.实体类开启AR
继承MP特殊类Model(T)
Model隶属于:com.baomidou.mybatisplus.extension.activerecord.Model
T泛型:当前的实体类
在这里插入图片描述
由于Model类的存在,那么就可以获得MP封装了基于当前表(泛型)的基础方法

默认会寻找当前数据源下,和实体类名相同的表
同时实现主键序列方法
MyBatis-Plus课堂笔记_第3张图片
MP的大部分方法都是依赖主键来生成SQL的,所以需要指定标识实体类中的主键
MyBatis-Plus课堂笔记_第4张图片

测试实体类AR功能,查看MP提供的封装方法
MyBatis-Plus课堂笔记_第5张图片
被关键字Model修饰的就是MP的内置方法

例子:查询一个条目
MyBatis-Plus课堂笔记_第6张图片

例子:增加一个条目
MyBatis-Plus课堂笔记_第7张图片
例子:修改一个条目
MyBatis-Plus课堂笔记_第8张图片
例子:删除一个条目
MyBatis-Plus课堂笔记_第9张图片
例子:如果MyBatis和MyBatis-plus方法重复
在这里插入图片描述
MyBatis方法优先

实体类名和表名不相同,在实体类上添加一个注释
在这里插入图片描述

MP和AR的关系:
MP是Mybatis-Plus的简称,是一个完整框架体系;AR是指一个模型类对应一个关系型数据库中的一张表;AR只是MP的一个功能而已。

  1. Dao层开启AR
    继承特殊类BaseMapper
    BaseMapper隶属于:com.baomidou.mybatisplus.core.mapper.BaseMapper
    T泛型:当前的实体类
    在这里插入图片描述

测试clientDao,查看被封装的方法
MyBatis-Plus课堂笔记_第10张图片
被关键字BaseMapper修饰的就是MP的内置方法

例子:插入一个对象
MyBatis-Plus课堂笔记_第11张图片
例子:查询昵称为“用户”的所有条目
在这里插入图片描述
QueryWrapper 被称为条件构造器

  1. Service层开启AR(同时开启ServiceImpl的AR)
    在这里插入图片描述
    ClientService继承IService类
    IService隶属于:com.baomidou.mybatisplus.extension.service.IService
    泛型Product,对应一个表

  2. ServiceImpl开启AR
    MyBatis-Plus课堂笔记_第12张图片
    ClientServiceImpl正常实现ClientService接口
    继承特殊类ServiceImpl
    ServiceImpl隶属于com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
    T1: 继承了MP组件的Dao层
    T2:实体类,也是为了引向到一个表
    由于T1的存在,因此无需再自动装载dao层

ServiceImpl修改
MyBatis-Plus课堂笔记_第13张图片
ServiceImpl的AR功能,是依赖Dao的AR功能来实现
MyBatis-Plus课堂笔记_第14张图片

例子 批量插入:
设置主键自增
在这里插入图片描述
saveBatch
MyBatis-Plus课堂笔记_第15张图片

建议保留MyBatis 关键字字段
insert,update,delete

saveOrUpdateBatch 根据主键,批量插入或更改MyBatis-Plus课堂笔记_第16张图片
总结:
1. 实体类,Dao层,Service层开启AR后,可以使用MP的内置方法,减少了SQL代码的重复书写。
2. 底层实现是hibernate框架结构。用类和方法来实现SQL功能,由于类和方法的局限性,复杂SQL需求,还是需求原始的SQL来完成
3. MyBatis-Plus不是为了取代MyBatis,是在其基础上做的功能升级,但无法替代,他们双生的魂斗罗。

你可能感兴趣的:(MyBatis-Plus)