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

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

為什么我這方法中寫入的SQL語句會不行?

//按照參數集合進行查詢
public?List<Goddess>?queryByParams(List<Map<String,Object>>?params)?throws?Exception{
????List<Goddess>?goddesses?=?new?ArrayList<Goddess>();
????Connection?conn?=?DBHelper.getConn();
????StringBuilder?sb?=?new?StringBuilder();
????sb.append("select?*?from?imooc_goddess?where?1=1?");
????if?(params!=null&&params.size()>0){
????????for?(int?i=0;i<params.size();i++)?{
????????????if(i?==?0){
????????????????Map<String,?Object>?param?=?params.get(i);
????????????????sb.append("?and?"+"?(?"?+?param.get("name")?+?"?"?+?param.get("relat")?+?"?"?+?param.get("value")?+?"?");
????????????}else?if(i==1){
????????????????Map<String,?Object>?param?=?params.get(i);
????????????????sb.append("?or?"?+?param.get("name")?+?"?"?+?param.get("relat")?+?"?"?+?param.get("value")?+?"?");
????????????}
????????}
????????sb.append("?)?");
????}
????PreparedStatement?statement?=?conn.prepareStatement(sb.toString());
????System.out.println(sb.toString());
????ResultSet?rs?=?statement.executeQuery();
????Goddess?g?=?null;
????while(rs.next()){
????????g=new?Goddess();
????????g.setUser_name(rs.getString("user_name"));
????????g.setId(rs.getInt("id"));
????????g.setAge(rs.getInt("age"));
????????g.setSex(rs.getInt("sex"));
????????g.setBirthday(rs.getDate("birthday"));
????????g.setEmail(rs.getString("email"));
????????g.setMobile(rs.getString("mobile"));
????????g.setCreate_date(rs.getDate("create_date"));
????????g.setCreate_user(rs.getString("create_user"));
????????g.setUpdate_date(rs.getDate("update_date"));
????????g.setUpdate_user(rs.getString("update_user"));
????????g.setIsdel(rs.getInt("isdel"));
????????goddesses.add(g);
????}
????return?goddesses;
}
main方法:
GoddessDao?gd?=new?GoddessDao();
List<Map<String,Object>>?params?=?new?ArrayList<Map<String,Object>>();
Map<String,Object>?param1?=?new?HashMap<String,?Object>();
param1.put("name","user_name");
param1.put("relat","=");
param1.put("value","'小美'");
params.add(param1);
Map<String,Object>?param2?=?new?HashMap<String,?Object>();
param2.put("name","mobile");
param2.put("relat","=");
param2.put("value","'187'");
params.add(param2);
List<Goddess>?goddesses?=?gd.queryByParam(params);
for?(Goddess?g?:?goddesses){
????System.out.println(g.toString());
}


是?i==0?判斷不了嗎?

正在回答

3 回答

錯誤在哪里?是編譯報錯 還是運行結果結果報錯 還是查詢結果為空?

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

moummm 提問者

這個方法用多組參數一起查詢的結果是并集還是交集吖?
2017-09-23 回復 有任何疑惑可以回復我~
#2

moummm 提問者

參數集合查詢和多組參數查詢是一樣的嗎?
2017-09-23 回復 有任何疑惑可以回復我~

運行沒報錯,就是用手機號碼查詢的時候查不到,而用姓名查的時候可以查的到,應該sql語句沒寫對的問題

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

阿雙otw

手機號查詢那應該寫成like,要用模糊查詢
2017-09-26 回復 有任何疑惑可以回復我~
#2

moummm 提問者 回復 阿雙otw

這個已經修改過了,但是還是查不到
2017-09-27 回復 有任何疑惑可以回復我~

where 1=1?沒這么寫過

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

moummm 提問者

那應該怎么寫呢?
2017-08-26 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么我這方法中寫入的SQL語句會不行?

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

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

幫助反饋 APP下載

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

公眾號

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