Java代碼裡如何拼接SQL語句到mybatis的xml
關鍵語句:
StringBuilder whereSql = new StringBuilder(); whereSql.append("SQL");
實現類:
public List getList(Map<String, Object> map) { List<Map<String, Object>> rs = new ArrayList<Map<String, Object>>(); try { StringBuilder whereSql = new StringBuilder(); if (map.get("userName").toString().length()>0) { whereSql.append(" AND a.userName in ('" + map.get("userName").toString().replaceAll(",", "\',\'") + "')");//不為空時加入查詢條件 } if (map.get("CURRENTPAGE").toString().length()>0 && map.get("PAGESIZE").toString().length()>0) {//前端有傳分頁參數時就添加分頁查詢條件 int currenpage = Integer.parseInt(map.get("CURRENTPAGE").toString()); int pagesize = Integer.parseInt(map.get("PAGESIZE").toString()); currenpage = ((currenpage - 1) * pagesize); whereSql.append(" limit " + currenpage + "," + pagesize); } rs = wmTblWorkorderMapper.getList(whereSql.toString()); return rs; } catch (Exception e) { e.printStackTrace(); } return null; }
mapper:
List<Map<String,Object>> getList(@Param("whereSql") String whereSql);
mapper對應的xml:
<select id="getList" resultType="HashMap"> SELECT * FROM user a WHERE 1=1 ${whereSql} </select>
mybatis中拼接sql語句的特殊符號表示
需要在mybatis中,使用到大於號,小於號等等拼接sql語句,一般有以下XML轉義字符 :
XML轉義字符
< < 小於號
> > 大於號
& & 和
' ‘ 單引號
" ” 雙引號
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java EE實現用戶後臺管理系統
- SpringBoot整合Mybatis簡單實現增刪改查
- 詳解Java快速上手用戶後臺管理系統
- mybatis3中@SelectProvider傳遞參數方式
- java基礎開發泛型類的詳解