Java代碼里如何拼接SQL語(yǔ)句到mybatis的xml
關(guān)鍵語(yǔ)句:
StringBuilder whereSql = new StringBuilder(); whereSql.append("SQL");
實(shí)現(xiàn)類:
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(",", "\',\'") + "')");//不為空時(shí)加入查詢條件 } if (map.get("CURRENTPAGE").toString().length()>0 && map.get("PAGESIZE").toString().length()>0) {//前端有傳分頁(yè)參數(shù)時(shí)就添加分頁(yè)查詢條件 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對(duì)應(yīng)的xml:
<select id="getList" resultType="HashMap"> SELECT * FROM user a WHERE 1=1 ${whereSql} </select>
mybatis中拼接sql語(yǔ)句的特殊符號(hào)表示
需要在mybatis中,使用到大于號(hào),小于號(hào)等等拼接sql語(yǔ)句,一般有以下XML轉(zhuǎn)義字符 :
XML轉(zhuǎn)義字符
< < 小于號(hào)
> > 大于號(hào)
& & 和
' ' 單引號(hào)
" " 雙引號(hào)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- java利用mybatis攔截器統(tǒng)計(jì)sql執(zhí)行時(shí)間示例
- 實(shí)例講解Java的MyBatis框架對(duì)MySQL中數(shù)據(jù)的關(guān)聯(lián)查詢
- mybatis教程之動(dòng)態(tài)sql語(yǔ)句_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Java Fluent Mybatis 分頁(yè)查詢與sql日志輸出詳解流程篇
- 利用Java如何獲取Mybatis動(dòng)態(tài)生成的sql接口實(shí)現(xiàn)
- java?mybatis如何操作postgresql?array數(shù)組類型
- Java?MyBatis是如何執(zhí)行一條SQL語(yǔ)句的
相關(guān)文章
Java 數(shù)據(jù)庫(kù)連接(JDBC)的相關(guān)總結(jié)
這篇文章主要介紹了Java 數(shù)據(jù)庫(kù)連接(JDBC)的相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下2021-03-03搭建MyBatis-Plus框架并進(jìn)行數(shù)據(jù)庫(kù)增刪改查功能
這篇文章主要介紹了搭建MyBatis-Plus框架并進(jìn)行數(shù)據(jù)庫(kù)增刪改查,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03SpringBoot嵌入式Servlet容器與定制化組件超詳細(xì)講解
這篇文章主要介紹了SpringBoot嵌入式Servlet容器與定制化組件的使用介紹,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10IDEA中 Getter、Setter 注解不起作用的問題如何解決
這篇文章主要介紹了IDEA中 Getter、Setter 注解不起作用的問題如何解決,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Java線程Timer定時(shí)器用法詳細(xì)總結(jié)
在本篇文章里小編給大家整理的是關(guān)于Java線程Timer定時(shí)器用法詳細(xì)總結(jié)內(nèi)容,需要的朋友們學(xué)習(xí)下吧。2020-02-02Spring?Boot?MQTT?Too?many?publishes?in?progress錯(cuò)誤的解決方
本文介紹Spring?Boot?MQTT?Too?many?publishes?in?progress錯(cuò)誤的解決方案,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-07-07Mybatis動(dòng)態(tài)SQL之where標(biāo)簽用法說明
這篇文章主要介紹了Mybatis動(dòng)態(tài)SQL之where標(biāo)簽用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06