午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

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

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

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

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

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

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

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

在用ssm框架編寫代碼的時候,因為數(shù)據(jù)庫換成了Oracle,在模糊查詢數(shù)據(jù)的時候突然發(fā)現(xiàn)報錯了

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

一直報錯參數(shù)個數(shù)無效,在網(wǎng)上查找資料發(fā)現(xiàn)模糊查詢的sql語句還是concat(’%’,’s’,’%’)這樣寫的

但后面發(fā)現(xiàn)實際上oracle中不支持concat的三個參數(shù)的拼接,需要更正為

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

或者使用

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

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

相關(guān)文章:
主站蜘蛛池模板: 亚洲丁香婷婷 | 1级黄色大片儿 | 亚洲精选一区 | 好吊色视频一区二区 | 日本视频黄色 | 欧美成人免费在线视频 | 亚洲午夜在线视频 | 福利网在线观看 | 亚洲国产精品免费 | 久久成人av | 国产成人网 | www色小姐com | 91精品国产麻豆 | jizzjizz在线 | 黄色高清在线观看 | 欧美日韩午夜视频 | 97自拍偷拍 | 日韩精品中文字幕在线观看 | 亚洲日本视频 | 成人五月网 | 天堂在线观看中文字幕 | 三级精品视频 | 欧美日韩偷拍视频 | 亚洲爱爱爱 | 午夜免费观看视频 | 久久免费播放 | 日本一区免费观看 | 91精品国产高清一区二区三蜜臀 | 天堂网视频在线 | 调教驯服丰满美艳麻麻在线视频 | 亚洲天堂男人天堂 | 午夜爱爱毛片xxxx视频免费看 | 亚洲婷婷在线观看 | 日本一区二区三区中文字幕 | 精品久久久久久中文字幕 | 免费在线观看黄色小视频 | 国产福利在线导航 | 成人欧美一区二区三区白人 | 婷婷国产 | 国产一级片视频 | 亚洲二级片 |