mybatis-plus使用的代码例子
mybatis-plus分页查询使用例子:
分页查询控制器
/** * 分页插件配置类 */ @Configuration public class PageHelperConfiguration { /** * 创建分页插件拦截器对象 */ @Bean public PaginationInterceptor paginationInterceptor(){ return new PaginationInterceptor(); } }
/** * 分页查询品牌 */ @GetMapping("/brand/page") public ResponseEntity<PageResult<Brand>> brandPageQuery( @RequestParam(value = "page",defaultValue = "1") Integer page, @RequestParam(value = "rows",defaultValue = "5") Integer rows, @RequestParam(value = "key",required = false) String key, @RequestParam(value = "sortBy",required = false) String sortBy, @RequestParam(value = "desc",required = false) Boolean desc ){ PageResult<Brand> pageResult = brandService.brandPageQuery(page,rows,key,sortBy,desc); return ResponseEntity.ok(pageResult); } }
@Service public class BrandService { @Autowired private BrandMapper brandMapper; public PageResult<Brand> brandPageQuery(Integer page, Integer rows, String key, String sortBy, Boolean desc) { //1.封装条件 //1.1 封装分页条件 IPage<Brand> iPage = new Page(page,rows); //1.2 封装查询条件 QueryWrapper<Brand> queryWrapper = Wrappers.query(); //自定义往QueryWrapper对象中封装条件 //处理key if(StringUtils.isNotEmpty(key)){ //where name like '%O%' or letter='O' /** * 参数一:字段名称(不是属性名) */ queryWrapper .like("name",key) .or() .eq("letter",key.toUpperCase()); } //处理sortBy和desc if(StringUtils.isNotEmpty(sortBy)){ if(desc){ //降序 queryWrapper.orderByDesc(sortBy); }else{ //升序 queryWrapper.orderByAsc(sortBy); } } //2.执行查询,获取结果 iPage = brandMapper.selectPage(iPage,queryWrapper); //3.处理结果,返回结果 //3.1 封装PageResult对象 PageResult<Brand> pageResult = new PageResult<>(iPage.getTotal(),iPage.getPages(),iPage.getRecords()); //3.2 返回数据 return pageResult; } }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.leyou.item.mapper.BrandMapper"> <!-- collection: 需要遍历的内容(数组或集合) item: 每个元素的别名 separator: 分隔符 --> <insert id="saveCategoryAndBrand"> INSERT INTO tb_category_brand(category_id,brand_id) VALUES <foreach collection="cids" item="cid" separator=","> (#{cid},#{bid}) </foreach> </insert> </mapper>
@PostMapping("/brand")
public ResponseEntity<Void> saveBrand(
Brand brand,
@RequestParam("cids") List<Long> cids
){
brandService.saveBrand(brand,cids);
//return ResponseEntity.status(HttpStatus.CREATED).body(null);
return ResponseEntity.status(HttpStatus.CREATED).build();
}
public void saveBrand(Brand brand, List<Long> cids) { try { //1.保存品牌表 brandMapper.insert(brand); //注意:MyBatisPlus在insert方法之后自动把数据库自增值赋值给id //2.保存品牌分类中间表 brandMapper.saveCategoryAndBrand(brand.getId(),cids); } catch (Exception e) { e.printStackTrace(); throw new LyException(ExceptionEnum.INSERT_OPERATION_FAIL); } }
public interface BrandMapper extends BaseMapper<Brand> { public void saveCategoryAndBrand(@Param("bid") Long bid,@Param("cids") List<Long> cids); }

浙公网安备 33010602011771号