亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

mybatis中bind標簽和concat的使用說明

瀏覽:40日期:2023-10-20 17:49:05

首先,二種方式都可以用來模糊查詢,都能預防 SQL 注入。但是在更換數據庫情況下,bind標簽通用。

<if test=” userName != null and userName !=””> and userName like concat(’%’ ,#{userName},’%’)</if>

使用concat函數連接字符串,在mysql中這個函數支持多個參數,但是在oracle中這個函數只支持2個參數,由于不同數據庫之間的語法差異,更換數據庫,這些語法就需要重寫。可以用bind標簽來避免更換數據庫所帶來的一些麻煩。

bind 標簽可以使用 OGNL 表達式創建一個變量井將其綁定到上下文中。

<bind name= ' userNameBind ” value = ”’ % ’+ userNarne + ’ %’” /> <if test=” userName != null and userName !=””> and userName like #{userNameBind}</if>

bind 標簽的兩個屬性都是必選項, name 為綁定到上下文的變量名, value 為 OGNL 表達式。創建一個 bind 標簽的變量后 , 就可以在下面直接使用,使用 bind 拼接字符串不僅可以避免因更換數據庫而修改 SQL,也能預防 SQL 注入,還能實現多個引用userNameBind

補充知識:MyBatis在Oracle數據庫下用concat函數模糊查詢之參數個數無效錯誤

Oracle拼接字符串concat需要注意的小事項

在用ssm框架編寫代碼的時候,因為數據庫換成了Oracle,在模糊查詢數據的時候突然發現報錯了

select * from SYS_MENU where url like concat(’%’,#{roleName},’%’)

一直報錯參數個數無效,在網上查找資料發現模糊查詢的sql語句還是concat(’%’,’s’,’%’)這樣寫的

但后面發現實際上oracle中不支持concat的三個參數的拼接,需要更正為

select * from SYS_MENU where url like concat(concat(’%’,#{roleName}),’%’)

或者使用

select * from SYS_MENU where url like ’%’ || #{roleName} || ’%’;

以上這篇mybatis中bind標簽和concat的使用說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 久久精品a | 在线观看麻豆国产精品 | 欧美一级毛片久久精品 | 天干天干夜天干天天爽 | 91色久| 妖精视频永久在线入口 | 国产在线拍偷自揄观看视频网站 | 男女啪啪成人免费网站 | 黄色三级网站免费 | 精品人成| 久久精品a亚洲国产v高清不卡 | 青青草原综合久久大伊人精品 | 亚洲综合精品成人啪啪 | 香蕉性视频 | 在线播放免费人成毛片乱码 | 日韩在线视频一区 | 精品九九久久国内精品 | 中日韩视频在线观看 | 国产一区二区在免费观看 | 日本不卡一区二区三区在线观看 | 一级毛片在线看 | 国产视频www | 国产亚洲欧美一区二区三区 | 国产成人拍精品视频网 | 色屁屁www影院入口免费观看 | 色综合图片 | 久香草视频在线观看免费 | 青青在线成人免费视频 | 亚洲日b | 男人午夜免费视频 | 日韩在线视频网 | 日韩黄色在线观看 | 国产成人精品日本亚洲专 | 成人综合在线观看 | 欧美 综合 社区 国产 | 亚洲精品成人一区二区aⅴ 亚洲精品大片 | 免费高清a毛片 | 国产精品久久久久久久午夜片 | 久久成人国产精品 | 九九草在线观看 | 中文字幕日韩一区二区三区不卡 |