MyBatis-Plus的BaseMapper常用方法
MyBatis-Plus的BaseMapper接口提供了针对单表的常用CRUD方法,自定义Mapper可通过继承BaseMapper的方式获取这些方法。
·
MyBatis-Plus的BaseMapper常用方法
MyBatis-Plus的BaseMapper接口提供了针对单表的常用CRUD方法,自定义Mapper可通过继承BaseMapper的方式获取这些方法。
插入相关
// 插入一条记录
int insert(T entity);
删除相关
// 根据 ID 删除
int deleteById(Serializable id);
// 根据 columnMap 条件,删除记录(columnMap 表字段map对象)
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
// 根据 entity 条件,删除记录
// queryWrapper 实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)
int delete(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 删除(根据ID 批量删除)
// idList 主键ID列表(不能为 null 以及 empty)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
修改相关
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);
// 根据 whereEntity 条件,更新记录
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
查询相关
// 根据 ID 查询
T selectById(Serializable id);
// 查询(根据ID 批量查询)
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 查询(根据 columnMap 条件)
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 entity 条件,查询全部记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录(只返回第一个字段的值)
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 entity 条件,查询全部记录(并翻页)
<E extends IPage<T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
<E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
常用方法
BaseMapper中比较常用的有以下方法:
int insert(T entity);
int deleteById(Serializable id);
int updateById(@Param(Constants.ENTITY) T entity);
T selectById(Serializable id);
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
<E extends IPage<T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
queryWrapper 用于封装查询条件,为 null 时表示无条件查询。
需要注意的是,MyBatisPlus配置了分页拦截器,selectPage分页查询功能才能正常使用。
MyBatisPlus配置示例
@Configuration
public class MpConfig {
/**
* 给 MybatisPlus 配置分页拦截器
*/
@Bean
public MybatisPlusInterceptor mpInterceptor() {
MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();
mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mpInterceptor;
}
}
测试方法示例
@Test
public void testSelectPage() {
IPage page = new Page(2, 2);
userMapper.selectPage(page, null);
System.out.println("当前页: "+page.getCurrent());
System.out.println("每页大小: "+page.getSize());
System.out.println("总页数: "+page.getPages());
System.out.println("总记录数: "+page.getTotal());
System.out.println("当前页记录: "+page.getRecords());
}
如果要查看MyBatisPlus日志,还需在SpringBoot配置文件(如application.yml)中添加以下配置
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
更多推荐
已为社区贡献2条内容
所有评论(0)