方法一:使用通用mapper和分页插件PageHelper
dao层:
public interface BrandMapper extends Mapper {
}
service层:
public interface BrandService {
PageResult findByPageAndExample(Map<String,Object> searchMap,int page,int size);
}
实现类:
@Override
public PageResult findByPageAndExample(Map<String, Object> searchMap, int page, int size) {
PageHelper.startPage(page, size);//对所有的查询进行拦截,进行分页查询
Example example = new Example(Brand.class);
Example.Criteria criteria = example.createCriteria();
if (searchMap != null) {
if (searchMap.get(“name”) != null && !"".equals(searchMap.get(“name”))) {
criteria.andLike(“name”, “%” + searchMap.get(“name”) + “%”);
}
if (searchMap.get(“letter”) != null && !"".equals(searchMap.get(“letter”))) {
criteria.andEqualTo(“letter”, searchMap.get(“letter”));
}
}
Page pageResult = (Page) brandMapper.selectByExample(example);//使用通用mapper进行条件查询,前面已经分页
return new PageResult(pageResult.getTotal(),pageResult.getResult());
}
controller层:
@RestController
@RequestMapping("/brand")
public class BrandController {
@RequestMapping("/findByPageAndExample")
public PageResult findByPageAndExample(@RequestBody Map<String,Object> searchMap,int page,int size){
return brandService.findByPageAndExample(searchMap,page,size);
}
}
方法二:在xml中通过sql实现
dao层:
public interface BrandMapper extends Mapper {
PageResult findByPageAndExample(Map<String,Object> searchMap,int page,int size);
}
BrandMapper.xml中sql的编写:
service层:
public interface BrandService {
PageResult findByPageAndExample2(Map<String,Object> searchMap,int page,int size);
}
实现类:
@Override
public PageResult findByPageAndExample2(Map<String, Object> searchMap, int page, int size) {
return brandMapper.findByPageAndExample(searchMap,page,size);
}
controller层:
@RequestMapping("/findByPageAndExample2")
public PageResult findByPageAndExample2(@RequestBody Map<String,Object> searchMap,int page,int size){
return brandService.findByPageAndExample(searchMap,page,size);
}