mybatis-plus常⽤使⽤⽅法(⼀)**
mybaits-plus常⽤使⽤⽅法
**
常⽤三层分别继承⽅法
1.1mapper层(接⼝定义层)可以⽤BaseMapper<>
例如:
1.2.⾥⾯常⽤的封装⽅法有
1.3常⽤⽅法介绍
【添加数据:(增)】
int insert(T entity);// 插⼊⼀条记录
注:
T        表⽰任意实体类型
entity    表⽰实体对象
【删除数据:(删)】
int deleteById(Serializable id);// 根据主键 ID 删除
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);// 根据 map 定义字段的条件删除
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);// 根据实体类定义的条件删除对象
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<?extends Serializable> idList);// 进⾏批量删除
注:
id        表⽰主键 ID
columnMap 表⽰表字段的 map 对象
wrapper  表⽰实体对象封装操作类,可以为null。
idList    表⽰主键 ID 集合(列表、数组),不能为null或 empty
【修改数据:(改)】
int updateById(@Param(Constants.ENTITY) T entity);// 根据 ID 修改实体对象。
int update(@Param(Constants.ENTITY) T entity,@Param(Constants.WRAPPER) Wrapper<T> updateWrapper);// 根据 updateWrapper 条件修改实体对象
注:
update 中的 entity 为 set 条件,可以为null。
updateWrapper 表⽰实体对象封装操作类(可以为null,⾥⾯的 entity ⽤于⽣成 where 语句)
【查询数据:(查)】
T selectById(Serializable id);// 根据主键 ID 查询数据
List<T>selectBatchIds(@Param(Constants.COLLECTION) Collection<?extends Serializable> idList);// 进⾏批量查询
List<T>selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);// 根据表字段条件查询
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);// 根据实体类封装对象查询⼀条记录
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);// 查询记录的总条数
List<T>selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);// 查询所有记录(返回 entity 集合)
List<Map<String, Object>>selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);// 查询所有记录(返回 map 集合)
List<Object>selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);// 查询所有记录(但只保存第⼀个字段的值)
<E extends IPage<T>> E selectPage(E page,@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);// 查询所有记录(返回 entity 集合),分页<E extends IPage<Map<String, Object>>> E selectMapsPage(E page,@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);// 查询所有记录(返回 map 集合),分页
注:
queryWrapper 表⽰实体对象封装操作类(可以为null)
page 表⽰分页查询条件
2.1service层(接⼝⽅法)可以⽤IService<>
介绍:
使⽤ 代码⽣成器 ⽣成的 service 接⼝中,其继承了 IService 接⼝。
  IService 内部进⼀步封装了 BaseMapper 接⼝的⽅法(当然也提供了更详细的⽅法)。
  使⽤时,可以通过 ⽣成的 mapper 类进⾏ CRUD 操作,也可以通过 ⽣成的 service 的实现类进⾏ CRUD 操作。(当然,⾃定义代码执⾏也可)
此处简单介绍⼀下 IService 中封装的常⽤⽅法。
2.2⽅法介绍
【添加数据:(增)】
default boolean save(T entity);// 调⽤ BaseMapper 的 insert ⽅法,⽤于添加⼀条数据。
boolean saveBatch(Collection<T> entityList,int batchSize);// 批量插⼊数据
注:
entityList 表⽰实体对象集合
batchSize 表⽰⼀次批量插⼊的数据量,默认为1000
【添加或修改数据:(增或改)】
boolean saveOrUpdate(T entity);// id 若存在,则修改, id 不存在则新增数据
default boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper);// 先根据条件尝试更新,然后再执⾏ saveOrUpdate 操作
boolean saveOrUpdateBatch(Collection<T> entityList,int batchSize);// 批量插⼊并修改数据
【删除数据:(删)】
default boolean removeById(Serializable id);// 调⽤ BaseMapper 的 deleteById ⽅法,根据 id 删除数据。
default boolean removeByMap(Map<String, Object> columnMap);// 调⽤ BaseMapper 的 deleteByM
ap ⽅法,根据 map 定义字段的条件删除
default boolean remove(Wrapper<T> queryWrapper);// 调⽤ BaseMapper 的 delete ⽅法,根据实体类定义的条件删除对象。
default boolean removeByIds(Collection<?extends Serializable> idList);// ⽤ BaseMapper 的 deleteBatchIds ⽅法, 进⾏批量删除。
【修改数据:(改)】
default boolean updateById(T entity);// 调⽤ BaseMapper 的 updateById ⽅法,根据 ID 选择修改。
default boolean update(T entity, Wrapper<T> updateWrapper);// 调⽤ BaseMapper 的 update ⽅法,根据 updateWrapper 条件修改实体对象。boolean updateBatchById(Collection<T> entityList,int batchSize);// 批量更新数据
【查数据:(查)】
default T getById(Serializable id);// 调⽤ BaseMapper 的 selectById ⽅法,根据主键 ID 返回数据。
default List<T>listByIds(Collection<?extends Serializable> idList);// 调⽤ BaseMapper 的 selectBatchIds ⽅法,批量查询数据。
default List<T>listByMap(Map<String, Object> columnMap);// 调⽤ BaseMapper 的 selectByMap ⽅法,根据表字段条件查询
default T getOne(Wrapper<T> queryWrapper);// 返回⼀条记录(实体类保存)。
Map<String, Object>getMap(Wrapper<T> queryWrapper);// 返回⼀条记录(map 保存)。
default int count(Wrapper<T> queryWrapper);// 根据条件返回记录数。
default List<T>list();// 返回所有数据。
default List<T>list(Wrapper<T> queryWrapper);// 调⽤ BaseMapper 的 selectList ⽅法,查询所有记录(返回 entity 集合)。
default List<Map<String, Object>>listMaps(Wrapper<T> queryWrapper);// 调⽤ BaseMapper 的 selectMaps ⽅法,查询所有记录(返回 map 集合)。default List<Object>listObjs();// 返回全部记录,但只返回第⼀个字段的值。
default<E extends IPage<T>> E page(E page, Wrapper<T> queryWrapper);// 调⽤ BaseMapper 的 selectPage ⽅法,分页查询
default<E extends IPage<Map<String, Object>>> E pageMaps(E page, Wrapper<T> queryWrapper);// 调⽤ BaseMapper 的 selectMapsPage ⽅法,分页查询
注:
get ⽤于返回⼀条记录。
list ⽤于返回多条记录。
count ⽤于返回记录总数。
page ⽤于分页查询。
【链式调⽤:】
default QueryChainWrapper<T>query();// 普通链式查询
default LambdaQueryChainWrapper<T>lambdaQuery();// ⽀持 Lambda 表达式的修改
default UpdateChainWrapper<T>update();// 普通链式修改
default LambdaUpdateChainWrapper<T>lambdaUpdate();// ⽀持 Lambda 表达式的修改
注:
query 表⽰查询
update 表⽰修改
Lambda 表⽰内部⽀持 Lambda 写法。
形如:
query().eq("column", value).one();
抽象类的使用
lambdaQuery().eq(Entity::getId, value).list();
update().eq("column", value).remove();
lambdaUpdate().eq(Entity::getId, value).update(entity);
3.1条件构造器
  上⾯介绍的 接⼝⽅法的参数中,会出现各种 wrapper,⽐如 queryWrapper、updateWrapper 等。wrapper 的作⽤就是⽤于定义各种各样的查询条件(where)。
Wrapper  条件构造抽象类
-- AbstractWrapper 查询条件封装,⽤于⽣成 sql 中的 where 语句。
-- QueryWrapper Entity 对象封装操作类,⽤于查询。
-- UpdateWrapper Update 条件封装操作类,⽤于更新。
-- AbstractLambdaWrapper 使⽤ Lambda 表达式封装 wrapper
-- LambdaQueryWrapper 使⽤ Lambda 语法封装条件,⽤于查询。
-- LambdaUpdateWrapper 使⽤ Lambda 语法封装条件,⽤于更新。
3.2常⽤条件
  参考源码以及官⽅⽂档总结的,还是⼀句话,混个眼熟,多⽤⽤就熟练

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。