mybatis-plus的basemapper提供17个通用crud方法:含基础增删改查(insert/selectbyid/updatebyid/deletebyid)、批量操作(selectbatchids/deletebatchids)、条件查询(selectbymap/selectone/selectlist/selectcount)、分页(selectpage/selectmapspage)及高级更新删除(update/delete)。

MyBatis-Plus 的 BaseMapper 是通用 CRUD 的核心入口,只要你的 Mapper 接口继承它,就能直接使用约 17 个开箱即用的方法,无需写 SQL、不用配 XML,真正实现“零SQL开发”。
基础增删改查方法
这是最常用的一组,覆盖单条记录的完整生命周期:
-
insert(T entity):插入一条记录,主键策略由
@TableId注解控制(如 AUTO、ASSIGN_ID) -
selectById(Serializable id):按主键查询,返回单个实体;查不到时返回
null,不是空集合 -
updateById(T entity):根据实体的主键字段更新其他非主键字段(只更新非 null 字段,除非配置了
updateStrategy) - deleteById(Serializable id):按主键删除一条记录
批量与条件操作方法
适用于多数据或动态筛选场景,灵活性更强:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- selectBatchIds(Collection> idList):传入 ID 列表,批量查询对应记录
- deleteBatchIds(Collection> idList):批量按 ID 删除
-
selectByMap(Map
columnMap) :以字段名→值的 Map 做等值查询(如{"status": 1, "type": "user"}) -
deleteByMap(Map
columnMap) :同上逻辑,用于等值删除 -
selectOne(Wrapper
wrapper) :用QueryWrapper或LambdaQueryWrapper构建条件,返回至多一条结果;结果多于一条会抛异常 -
selectList(Wrapper
wrapper) :同上条件,但返回完整列表 -
selectCount(Wrapper
wrapper) :仅统计满足条件的记录数,不查具体数据
分页与结果封装方法
面向真实业务分页和轻量查询需求:
-
selectPage(Page
page, Wrapper :带分页参数的列表查询,自动注入 LIMIT/OFFSET(依赖分页插件)wrapper) -
selectMaps(Wrapper
wrapper) :返回List<map object>></map>,适合只查部分字段或动态列场景 - selectMapsPage(Page page, Wrapper wrapper):分页 + Map 结果组合
更新与删除的高级条件方法
支持更精细的数据变更控制:
-
update(T entity, Wrapper
updateWrapper) :将entity中的非 null 字段作为 SET 部分,updateWrapper作为 WHERE 条件(常用于修改指定条件下的某些字段) -
delete(Wrapper
wrapper) :完全由条件构造器决定删除范围,比如eq("status", 0).gt("create_time", yesterday)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










