先看需求:
楼主随便选了一张表,用以举例,现在的想法是是想把这一张表当中的countryname作为Map的key,而把countrycode作为value
然后实现方法如下:
DAO:
List<Map<String,String>> findSmsType();
用的是mybatis+springboot的后台,故只需定义好DAO的接口
然后是xml
<select id="findSmsType" resultType="java.util.Map">
SELECT countryname,countrycode FROM SYS_DICT
</select>
然后我们返回的结果类型是一个List<Map<String,String>>的类型;
故service:
public List<Map<String,String>> findSmsType(){
return dao.findSmsType();
}
而我是把处理的逻辑放在了controller,实则应该放在service
List<Map<String,String>> mapList = smsTemplateService.findSmsType();
// Map<String,String> variableMap = new HashMap();
String countryname= "";
String countrycode= "";
for (int i = 0; i < mapList.size(); i++) {
Map<String,String> map = mapList.get(i);
label = map.get("countryname");
value = map.get("countrycode");
if (content.contains(label)){
content = content.replace(label,value);
}
// System.out.println(map.get("LABEL"));
// System.out.println(map);
// for (String key:map.keySet()){
// if (key.equals("LABEL")){
// label = map.get(key);
// }else if(key.equals("VALUE")){
// value = map.get(key);
// System.out.println( map.get(key));
// }
// variableMap.put(label,value);
// }
// System.out.println(mapList.get(i).get("LABEL"));
}
// for (String key:variableMap.keySet()){
// if (content.contains(key)){
// content = content.replace(key,variableMap.get(key));
// }
// }
由于功能需求把转为新Map的代码都注释了,有耐心的小伙伴可以看一下,我的需求是把一个字符串进行和新Map的key进行比较,若相同,则把该相同用该key所对应的Map的value进行取代。