【MyBatis-Plus】常用的内置接口

🥳🥳Welcome Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于MyBatis-Plus的相关操作吧 

目录

🥳🥳Welcome Huihui's Code World ! !🥳🥳

1.Service接口

1.1.Save

1.2.SaveOrUpdate

1.3.Remove

1.4.Update

1.5.Get

1.6.List

2.Mapper接口

2.1.Insert

2.2.Delete

2.3.Update

2.4.Select


1.Service接口

Service CRUD 接口说明:

  • 通用 Service CRUD 封装IService接口,进一步封装 CRUD 采用 get 查询单行 remove 删除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆,

  • 泛型 T 为任意实体对象

  • 建议如果存在自定义通用 Service 方法的可能,请创建自己的 IBaseService 继承 Mybatis-Plus 提供的基类

  • 对象 Wrapper条件构造器

1.1.Save

// 插入一条记录(选择字段,策略插入)
boolean save(T entity);
// 插入(批量)
boolean saveBatch(Collection<T> entityList);
// 插入(批量)
boolean saveBatch(Collection<T> entityList, int batchSize);

参数说明

类型参数名描述
Tentity实体对象
Collection<T>entityList实体对象集合
intbatchSize插入批次数量

1.2.SaveOrUpdate

// TableId 注解存在更新记录,否插入一条记录
boolean saveOrUpdate(T entity);
// 根据updateWrapper尝试更新,否继续执行saveOrUpdate(T)方法
boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper);
// 批量修改插入
boolean saveOrUpdateBatch(Collection<T> entityList);
// 批量修改插入
boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize);

参数说明

类型参数名描述
Tentity实体对象
Wrapper<T>updateWrapper实体对象封装操作类 UpdateWrapper
Collection<T>entityList实体对象集合
intbatchSize插入批次数量

1.3.Remove

// 根据 queryWrapper 设置的条件,删除记录
boolean remove(Wrapper<T> queryWrapper);
// 根据 ID 删除
boolean removeById(Serializable id);
// 根据 columnMap 条件,删除记录
boolean removeByMap(Map<String, Object> columnMap);
// 删除(根据ID 批量删除)
boolean removeByIds(Collection<? extends Serializable> idList);

参数说明

类型参数名描述
Wrapper<T>queryWrapper实体包装类 QueryWrapper
Serializableid主键 ID
Map<String, Object>columnMap表字段 map 对象
Collection<? extends Serializable>idList主键 ID 列表

1.4.Update

// 根据 UpdateWrapper 条件,更新记录 需要设置sqlset
boolean update(Wrapper<T> updateWrapper);
// 根据 whereWrapper 条件,更新记录
boolean update(T updateEntity, Wrapper<T> whereWrapper);
// 根据 ID 选择修改
boolean updateById(T entity);
// 根据ID 批量更新
boolean updateBatchById(Collection<T> entityList);
// 根据ID 批量更新
boolean updateBatchById(Collection<T> entityList, int batchSize);

参数说明

类型参数名描述
Wrapper<T>updateWrapper实体对象封装操作类 UpdateWrapper
Tentity实体对象
Collection<T>entityList实体对象集合
intbatchSize更新批次数量

1.5.Get

// 根据 ID 查询
T getById(Serializable id);
// 根据 Wrapper,查询一条记录。结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")
T getOne(Wrapper<T> queryWrapper);
// 根据 Wrapper,查询一条记录
T getOne(Wrapper<T> queryWrapper, boolean throwEx);
// 根据 Wrapper,查询一条记录
Map<String, Object> getMap(Wrapper<T> queryWrapper);
// 根据 Wrapper,查询一条记录
<V> V getObj(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);

参数说明

类型参数名描述
Serializableid主键 ID
Wrapper<T>queryWrapper实体对象封装操作类 QueryWrapper
booleanthrowEx有多个 result 是否抛出异常
Tentity实体对象
Function<? super Object, V>mapper转换函数

1.6.List

// 查询所有
List<T> list();
// 查询列表
List<T> list(Wrapper<T> queryWrapper);
// 查询(根据ID 批量查询)
Collection<T> listByIds(Collection<? extends Serializable> idList);
// 查询(根据 columnMap 条件)
Collection<T> listByMap(Map<String, Object> columnMap);
// 查询所有列表
List<Map<String, Object>> listMaps();
// 查询列表
List<Map<String, Object>> listMaps(Wrapper<T> queryWrapper);
// 查询全部记录
List<Object> listObjs();
// 查询全部记录
<V> List<V> listObjs(Function<? super Object, V> mapper);
// 根据 Wrapper 条件,查询全部记录
List<Object> listObjs(Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录
<V> List<V> listObjs(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);

参数说明

类型参数名描述
Wrapper<T>queryWrapper实体对象封装操作类 QueryWrapper
Collection<? extends Serializable>idList主键 ID 列表
Map<String, Object>columnMap表字段 map 对象
Function<? super Object, V>mapper转换函数

更多Service接口操作,请见官网

2.Mapper接口

Mapper CRUD接口说明:

  • 通用 CRUD 封装BaseMapper (opens new window)接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器

  • 泛型 T 为任意实体对象

  • 参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键

  • 对象 Wrapper条件构造器

###

2.1.Insert

// 插入一条记录
int insert(T entity);

参数说明

类型参数名描述
Tentity实体对象

2.2.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 对象

2.3.Update

// 根据 whereWrapper 条件,更新记录
int update(@Param(Constants.ENTITY) T updateEntity, @Param(Constants.WRAPPER) Wrapper<T> whereWrapper);
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);

使用提示:在调用updateById方法前,需要在T entity(对应的实体类)中的主键属性上加上@TableId注解。

参数说明

类型参数名描述
Tentity实体对象 (set 条件值,可为 null)
Wrapper<T>updateWrapper实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)

2.4.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)

 好啦,今天的分享就到这了,希望能够帮到你呢!😊😊   

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Mybatis-plus是一个Mybatis的增强工具,它提供了CRUD操作和分页查询等功能. 特点: 1. 自动填充:Mybatis-plus可以自动填充字段,比如自动填充创建时间和更新时间. 2. 代码生成: Mybatis-plus提供了代码生成器,可以根据数据库表生成对应的Java实体类和Mapper接口. 3. 乐观锁和逻辑删除: Mybatis-plus支持逻辑删除和乐观锁,使用简单. 4. 分页查询: Mybatis-plus支持分页查询,使用简单. 5. 性能优化: Mybatis-plus提供了一些性能优化的功能,比如查询缓存,性能分析. ### 回答2: Mybatis-Plus(简称MP)是基于Mybatis的增强工具,是一个开源的持久层框架。它主要解决了Mybatis在使用过程中繁琐的XML配以及一些重复的CRUD操作。 Mybatis-Plus的特点如下: 1. 简化开发:Mybatis-Plus通过自动生成Mybatis的XML文件和mapper接口的实现类,省去了手动编写和配的繁琐过程,可以直接使用简单的Java代码完成数据库操作。 2. 大量便捷的CRUD操作:Mybatis-Plus了大量常用的CRUD方法,如插入(Insert)、更新(Update)、删除(Delete)和查询(Select),开发人员无需再重复编写这些方法。 3. 条件构造器:Mybatis-Plus提供了强大的条件构造器,支持链式调用,可以轻松实现复杂的查询条件。开发人员可以根据实际需求,动态组装查询条件,提高了开发效率。 4. 分页插件:Mybatis-Plus提供了分页插件,能够方便地进行分页查询。只需简单配即可实现分页功能,大大简化了分页操作的编码工作。 5. 逻辑删除:Mybatis-Plus支持逻辑删除功能,默认值为未删除,可以方便地实现数据的逻辑删除,避免了物理删除对数据的完全删除。 6. 自动填充:Mybatis-Plus提供了自动填充功能,可以在插入和更新操作时自动填充公共字段,如创建时间和更新时间等,减少了重复的代码编写。 7. 代码生成器:Mybatis-Plus提供了强大的代码生成器,能够根据数据库表结构生成对应的实体类、mapper接口和XML文件,极大地加速了项目的开发进程。 总的来说,Mybatis-Plus作为Mybatis的增强工具,拥有简化开发、便捷的CRUD操作、灵活的条件构造器、强大的分页插件等优点。它能够提高开发效率,减少重复工作,使开发人员更专注于业务逻辑的实现。 ### 回答3: Mybatis-plus是一款基于Mybatis的增强工具库,提供了许多便利的功能和减少样板代码的方法。它的主要特点包括以下几点: 1. 简化CRUD操作:Mybatis-plus自动封装了常见的增删改查方法,通过集成Mybatis的基础功能,简化了数据库操作的步骤,大大减少了繁琐的编写SQL语句的过程。 2. 完善的代码生成器:Mybatis-plus提供了代码生成器,可以根据数据库表结构自动生成实体类、Mapper接口以及XML映射文件等。这个代码生成器简化了项目的开发流程,提高了开发效率。 3. 支持Lambda表达式:Mybatis-plus兼容了Lambda表达式,可以通过Lambda表达式进行条件查询,并且具有类型安全性和更强的可读性。使用Lambda表达式可以避免手写SQL语句,减少了出错的可能性。 4. 内的分页插件:Mybatis-plus提供了内的分页插件,简化了分页查询的实现。只需要在查询方法中调用Page对象的相关方法,就能够轻松地实现分页查询。 5. 强大的通用接口Mybatis-plus提供了一系列的通用接口,如BaseMapper、IService等,可以快速实现常见的数据库操作。这些通用接口提供了许多常用的方法,包括CRUD操作、条件查询、分页查询等,大大减少了开发人员的编写工作。 总之,Mybatis-plus在保留Mybatis框架的基础上,通过提供额外的功能和工具,使得数据库操作更加简单、高效,减少了开发过程中的样板代码,提高了开发效率。因此,Mybatis-plus已经成为许多Java开发者喜爱的数据库操作框架之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是辉辉啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值