使用集合方式做模糊查詢時(shí),結(jié)果有違常理!
數(shù)據(jù)庫(kù)中imooc_goddess表的內(nèi)容如上圖所示,為什么我用下面的java代碼片段做模糊查詢時(shí),
得到的結(jié)果如下圖所示呢,這個(gè)結(jié)果不是有違常理嗎?
//使用集合的方式進(jìn)行查詢 ????????System.out.println("使用集合的方式進(jìn)行查詢:"); ????????List<Map<String,?Object>>?params?=?new?ArrayList<Map<String,Object>>(); ????????Map<String,?Object>?param?=?new?HashMap<String,?Object>(); ????????param.put("name",?"user_name"); ????????param.put("rela",?"like"); ????????param.put("value",?"'%小美%'"); ????????params.add(param); ???????? ????????param.put("name",?"mobile"); ????????param.put("rela",?"like"); ????????param.put("value",?"'%187%'"); ????????params.add(param); ????????List<Goddess>?result?=?g.getGoddess(params); ????????for(int?i?=?0;?i?<?result.size();?i++) ????????{ ????????????System.out.println(result.get(i).toString()); ????????}
2016-12-11
因?yàn)槟銢](méi)有在前面params.add(param);后重新new一個(gè)參數(shù)列表,導(dǎo)致你
?param.put("name",?"mobile");
????????param.put("rela",?"like");
????????param.put("value",?"'%187%'");
的這些覆蓋了前面的
param.put("name",?"user_name");
????????param.put("rela",?"like");
????????param.put("value",?"'%小美%'");
查詢條件,于是你的查詢條件變成了是“where 1=1 and mobile like %187% “,你可以遍歷下你的params 表就知道你的params裝了什么。
2015-12-18