亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

http://img1.sycdn.imooc.com//562c6de800010b1412070186.jpg




數據庫中imooc_goddess表的內容如上圖所示,為什么我用下面的java代碼片段做模糊查詢時,

得到的結果如下圖所示呢,這個結果不是有違常理嗎?

http://img1.sycdn.imooc.com//562c6ea40001248e14170261.jpg

//使用集合的方式進行查詢
????????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());
????????}


正在回答

2 回答

因為你沒有在前面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裝了什么。

0 回復 有任何疑惑可以回復我~
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);


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JDBC之 “ 對岸的女孩看過來”
  • 參與學習       99328    人
  • 解答問題       916    個

一起領略JDBC的奧秘,為進一步學習集成框架打下良好的基礎

進入課程

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

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號