一:传过来的map中就一对数据时:
@PostMapping("/useMap/stringKey")
public ResponseBO<List<TPercolationTask>> serchPercolationTask(@RequestBody Map<String,String> map){
String projectId = map.get("projectId");
TPercolationTaskExample example = new TPercolationTaskExample();
TPercolationTaskExample.Criteria criteria = example.createCriteria();
criteria.andProjectIdEqualTo(projectId);
PageResult<TPercolationTask> byExample = tPercolationTaskService.findByExample(example);
List<TPercolationTask> data = byExample.getData();
String name = data.get(0).getName();
Map<String,String> map1 = new HashMap<>();
//从这里开始看就行,前面绕了一圈,没啥用
//--------1.参数map1中就只有一对键值对
map1.put("nameKey",name);
List<TPercolationTask> tPercolationTaskList = tPercolationTaskService.serchPercolationTask(map1);
return new ResponseBO<>(tPercolationTaskList,SUCCESS);
}
这种情况下:mybatis中直接用map1里的key就可以了:
<select id="serchPercolationTask" parameterType="java.util.Map" resultMap="ResultMapWithBLOBs">
select * from t_percolation_task
<where>
name = #{nameKey}
</where>
</select>
postman测试结果:
二:传过来的map中有多对数据时:
sql写法:这里的ids,就是我们map中的key,他的value是一个list,然后我们通过key遍历他
测试结果:
或者:和传实体类差不多,一次判断传过来的多个key
测试:
sql写法:
打印测试结果: