使用集合方式做模糊查詢時,結果有違常理!

數據庫中imooc_goddess表的內容如上圖所示,為什么我用下面的java代碼片段做模糊查詢時,
得到的結果如下圖所示呢,這個結果不是有違常理嗎?

//使用集合的方式進行查詢
????????System.out.println("使用集合的方式進行查詢:");
????????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
因為你沒有在前面params.add(param);后重新new一個參數列表,導致你
?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
Map<String,?Object>?param?=?new?HashMap<String,?Object>(); ????????param.put("name",?"user_name"); ????????param.put("rela",?"like"); ????????param.put("value",?"'%小美%'"); ????????params.add(param); ???????? ????????//新增條件時要重新new?一個參數列表 ????????param?=?new?HashMap<String,?Object>(); ???????? ????????param.put("name",?"mobile"); ????????param.put("rela",?"like"); ????????param.put("value",?"'%187%'"); ????????params.add(param);