方法一:使用通用mapper的条件查询
示例:
dao层
import tk.mybatis.mapper.common.Mapper;
public interface BrandMapper extends Mapper {
}
service层
public interface BrandService {
List findByExample(Map<String,Object> searchMap);
}
service实现类
@Override
public List findByExample(Map<String, Object> searchMap) {
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”));
}
return brandMapper.selectByExample(example);//底层会将封装了查询条件的example拼接到sql后面
}
return null;
}
controller层
@PostMapping("/findByExample")
public List findByExample(@RequestBody Map<String,Object> searchMap){ //前台传过来的是json,不加@RequestBody注解则无法转为Map
return brandService.findByExample(searchMap);
}
方法二:不使用通用mapper,自己在xml中编写sql,使用模糊查询
示例:
dao层
public interface BrandMapper extends Mapper {
List findByExample(Map<String,Object> searchMap);
}
BrandMapper.xml中的代码
service层
public interface BrandService {
List findByExample2(Map<String,Object> searchMap);
}
service层实现类
@Override
public List findByExample2(Map<String,Object> searchMap){
return brandMapper.findByExample(searchMap);
}
controller层
@PostMapping("/findByExample")
public List findByExample(@RequestBody Map<String,Object> searchMap){ //前台传过来的是json,不加@RequestBody注解则无 法转为Map
return brandService.findByExample2(searchMap);
}