MyBatis-Plus Mapper CRUD 接口实例 - 寒江孤影

MyBatis-Plus Mapper CRUD 接口实例

作者: 铁憨憨

全网最全的网络资源分享网站

手机扫码查看

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

教程演示环境

IntelliJ IDEA 2020.3.3 x64中文插件汉化版Navicat Premium 15apache-maven-3.6.3jdk1.8.0_191MySQL5.7SpringBoot 2.3.7MyBatis-PlusPostman中文汉化版

本教程使用SpringBoot项目演示,需要先配置Maven才能创建SpringBoot项目

演示所用到的SpringBoot项目

QQ截图20210330005313.png

演示所用到的数据库 表如下

QQ截图20210324224516.png

CRUD 接口

Mapper CRUD 接口

说明:     

  • 通用 CRUD 封装BaseMapper接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器
  • 泛型 T 为任意实体对象
  • 参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键
  • 对象 Wrapper 为 条件构造器

Insert

// 插入一条记录
int insert(T entity);
参数说明
类型参数名描述
Tentity实体对象

insert 方法 插入一条记录

先注入mapper

QQ截图20210330002424.png

测试工具 Postman中文汉化版

Postman工具测试接口,接口传入实体类

QQ截图20210330002651.png

添加了一条数据

QQ截图20210330010019.png

Delete

// 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
// 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 ID 删除
int deleteById(Serializable id);
// 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
参数说明
类型参数名描述
Wrapper<T>wrapper实体对象封装操作类(可以为 null)
Collection<? extends Serializable>idList主键ID列表(不能为 null 以及 empty)
Serializableid主键ID
Map<String, Object>columnMap表字段 map 对象

delete方法 根据 entity 条件,删除记录

QQ截图20210330003618.png

Postman工具测试接口,接口传入要删除user列的行名称

QQ截图20210330003958.png

删除了一条数据

QQ截图20210330010152.png

deleteBatchIds方法 根据ID 批量删除

QQ截图20210330010554.png

Postman工具测试接口,接口传入集合

QQ截图20210330010448.png

删除了两条数据

QQ截图20210330084830.png

deleteById方法 根据ID删除

先添加几条数据

QQ截图20210330085208.png

编写测试代码

QQ截图20210330084453.png

Postman工具测试接口,接口传入要删除的id

QQ截图20210330084703.png

删除了一条数据

QQ截图20210330085353.png

deleteByMap方法 根据 columnMap 条件,删除记录

QQ截图20210330090328.png

Postman工具测试接口,接口传入要删除的columnMap

QQ截图20210330090142.png

删除了一条数据

QQ截图20210330090424.png

Update

// 根据 whereEntity 条件,更新记录
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);
参数说明
类型参数名描述
Tentity实体对象 (set 条件值,可为 null)
Wrapper<T>updateWrapper实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)

update方法 根据 whereEntity 条件,更新记录

QQ截图20210330091130.png

Postman工具测试接口,接口传入实体类和更新条件

QQ截图20210330091531.png

更新了一条数据

QQ截图20210330091625.png

updateById方法 根据 ID 修改

QQ截图20210330091737.png

Postman工具测试接口,接口传入实体类

QQ截图20210330092027.png

修改了一条数据

QQ截图20210330092116.png

Select

// 根据 ID 查询
T selectById(Serializable id);
// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 查询(根据ID 批量查询)
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 entity 条件,查询全部记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 查询(根据 columnMap 条件)
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
// 根据 Wrapper 条件,查询全部记录
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 根据 entity 条件,查询全部记录(并翻页)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
参数说明
类型参数名描述
Serializableid主键ID
Wrapper<T>queryWrapper实体对象封装操作类(可以为 null)
Collection<? extends Serializable>idList主键ID列表(不能为 null 以及 empty)
Map<String, Object>columnMap表字段 map 对象
IPage<T>page分页查询条件(可以为 RowBounds.DEFAULT)

selectById方法 根据 ID 查询

QQ截图20210330092453.png

Postman工具测试接口,接口传入id

QQ截图20210330092651.png

selectOne方法 根据 entity 条件,查询一条记录

QQ截图20210330093123.png

Postman工具测试接口,接口传入条件

QQ截图20210330093437.png

selectBatchIds方法 根据ID 批量查询

QQ截图20210330094022.png

Postman工具测试接口,接口传入集合

QQ截图20210330093905.png

selectList方法 根据 entity 条件,查询全部记录

QQ截图20210330094824.png

Postman工具测试接口,接口传入条件

QQ截图20210330124830.png

selectByMap方法 根据 columnMap 条件

QQ截图20210330125534.png

Postman工具测试接口,接口传入条件

QQ截图20210330125447.png

selectMaps方法 根据 Wrapper 条件,查询全部记录

QQ截图20210330131216.png

Postman工具测试接口,接口传入条件

QQ截图20210330131136.png

selectPage方法 根据 entity 条件,查询全部记录(并翻页)

分页前需要先配置Mybatis-Plus分页插件才能使用

在test包下创建config文件夹,创建 MybatisPlusConfig.java 类文件代码如下

package com.example.springbootmybatisplus.springbootmybatisplus.test.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        return interceptor;
    }
}

QQ截图20210329195123.png

编写测试代码

QQ截图20210330133225.png

Postman工具测试接口,接口传入分页和条件

QQ截图20210330133145.png

selectMapsPage方法 根据 Wrapper 条件,查询全部记录(并翻页)

QQ截图20210330133548.png

Postman工具测试接口,接口传入分页和条件

QQ截图20210330133721.png

selectCount方法 根据 Wrapper 条件,查询总记录数

QQ截图20210330134004.png

Postman工具测试接口,接口传入条件

QQ截图20210330134128.png

了解更多Mybatis-Plus方法 点击Mybatis-Plus Service CRUD 接口实例

分享到:
打赏
-版权声明-

作者: 铁憨憨, 转载或复制请以 超链接形式 并注明出处 寒江孤影
原文地址: 《MyBatis-Plus Mapper CRUD 接口实例》 发布于2021-3-29

阅读时间:   发布于:2021-3-29
文章标题:《MyBatis-Plus Mapper CRUD 接口实例》
本文链接:https://a14.cn:443/post-16.html
本文编辑: 铁憨憨,转载请注明超链接和出处寒江孤影
收录状态:[百度已收录][360已收录][搜狗已收录]

评论一下

切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

MyBatis-Plus Mapper CRUD 接口实例

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

花呗扫一扫打赏

微信扫一扫打赏

企鹅扫一扫打赏