Mybatis-Plus常用方法总结
根据id、id列表获取
getById(id); getByIds(idList);selectList(LambdaQueryWrapper wrapper);
@Override
// selectList(wrapper)示例
public List<SkuImage> getImageListBySkuId(Long skuId) {
LambdaQueryWrapper<SkuImage> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SkuImage::getSkuId, skuId);
List<SkuImage> skuImageList = baseMapper.selectList(wrapper);
return skuImageList;
}
根据id、id列表、wrapper删除
removeById(id); removeByIds(idList);remove(wrapper)
LambdaQueryWrapper<SkuPoster> wrapperSkuPoster = new LambdaQueryWrapper<>();
wrapperSkuPoster.eq(SkuPoster::getSkuId, skuId);
skuPosterService.remove(wrapperSkuPoster);
获取全部信息
在Service层使用 this.list() 返回全部信息
保存信息
save(T t); saveBatch(List list);
更新信息
updateById(T t); update(T t, Wrapper wrapper);
//根据条件更新QueryWrapper用法
@Test
public void testUpdateQw(){
User user=new User();
user.setUserName("心态还需努力呀~");
user.setUserEmail("2132444@qq.com");
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper.eq("user_status","1");
int result= userMapper.update(user, wrapper);
System.out.println("result=> "+result);
}
分页查询
前端传入当前页(Page)和每页显示数量(limit)
// Controller层示例
// AttrGroup 和 AttrGroupQueryVo 是定义好的实体类
public Result getById (
@ApiParam(name = "page", value = "当前页码", required = true)
@PathVariable Long page,
@ApiParam(name = "limit", value = "每页记录数", required = true)
@PathVariable Long limit,
@ApiParam(name = "attrGroupQueryVo", value = "查询对象", required = false)
AttrGroupQueryVo attrGroupQueryVo){
Page<AttrGroup> pageParam = new Page<>(page, limit);
IPage<AttrGroup> pageModel = attrGroupService.selectPage(pageParam, attrGroupQueryVo);
return Result.ok(pageModel);
}
// Service 层代码,最终调用 selectPage() 方法查询所有数据
@Override
public IPage<AttrGroup> selectPage(Page<AttrGroup> pageParam, AttrGroupQueryVo attrGroupQueryVo) {
String name = attrGroupQueryVo.getName();
LambdaQueryWrapper<AttrGroup> lambdaQueryWrapper = new LambdaQueryWrapper<>();
if (!StringUtil.isEmpty(name)){
lambdaQueryWrapper.like(AttrGroup::getName, name);
}
IPage<AttrGroup> attrGroupIPage = baseMapper.selectPage(pageParam, lambdaQueryWrapper);
return attrGroupIPage;
}
/*
getRecords(),获取查询数据
getCurrent(),获取当前页
getSize(),获取当前分页大小
*/
public void selectPageTest(){
Page<User> page=new Page<User>(1,5,10);
Page<User> pageParam = userMapper.selectPage(page, null);
List<User> records = pageParam.getRecords();
records.forEach(record-> System.out.println(record));
System.out.println("Current:"+pageParam.getCurrent());
System.out.println("Size:"+pageParam.getSize());
}