最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis中bind標(biāo)簽和concat的使用說明

 更新時(shí)間:2020年12月02日 14:45:43   作者:學(xué)前班班長  
這篇文章主要介紹了mybatis中bind標(biāo)簽和concat的使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

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

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

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

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

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

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

Oracle拼接字符串concat需要注意的小事項(xiàng)

在用ssm框架編寫代碼的時(shí)候,因?yàn)?span style="color: #ff00ff">數(shù)據(jù)庫換成了Oracle,在模糊查詢數(shù)據(jù)的時(shí)候突然發(fā)現(xiàn)報(bào)錯(cuò)了

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

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

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

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

或者使用

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

以上這篇mybatis中bind標(biāo)簽和concat的使用說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java使用Redis及其優(yōu)化詳解

    Java使用Redis及其優(yōu)化詳解

    大家好,本篇文章主要分享的是Java使用Redis及其優(yōu)化詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • java實(shí)現(xiàn)時(shí)間與字符串之間轉(zhuǎn)換

    java實(shí)現(xiàn)時(shí)間與字符串之間轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)時(shí)間與字符串之間轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • java類實(shí)現(xiàn)日期的時(shí)間差的實(shí)例講解

    java類實(shí)現(xiàn)日期的時(shí)間差的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于java類實(shí)現(xiàn)日期的時(shí)間差的實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • SpringBoot之spring.factories的使用方式

    SpringBoot之spring.factories的使用方式

    這篇文章主要介紹了SpringBoot之spring.factories的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Spring MVC的文件上傳和下載以及攔截器的使用實(shí)例

    Spring MVC的文件上傳和下載以及攔截器的使用實(shí)例

    這篇文章主要介紹了Spring MVC的文件上傳和下載以及攔截器的使用實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • Java 數(shù)據(jù)庫連接池c3p0 介紹

    Java 數(shù)據(jù)庫連接池c3p0 介紹

    這篇文章主要介給大家分享了 Java 數(shù)據(jù)庫連接池c3p0 介紹,c3p0 是一個(gè)成熟的、高并發(fā)的 JDBC 連接池庫,支持緩存和 PreparedStatements 的重用。它以LGPL v.2.1或EPL v.1.0授權(quán),下面我們就一起來看看文章內(nèi)容的詳細(xì)介紹吧,需要的朋友也可以參考一下
    2021-11-11
  • spring?boot對敏感信息進(jìn)行加解密的項(xiàng)目實(shí)現(xiàn)

    spring?boot對敏感信息進(jìn)行加解密的項(xiàng)目實(shí)現(xiàn)

    本文主要介紹了spring?boot對敏感信息進(jìn)行加解密的項(xiàng)目實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Eclipse中配置Maven的圖文教程

    Eclipse中配置Maven的圖文教程

    這篇文章主要介紹了Eclipse中配置Maven的圖文教程,需要的朋友可以參考下
    2020-12-12
  • 詳解java IO流之緩沖流的使用

    詳解java IO流之緩沖流的使用

    本文主要介紹了java的IO流中的緩沖流的使用,緩沖流分為字節(jié)和字符緩沖流。分享了有關(guān)它們的實(shí)例代碼,具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • Java?垃圾回收超詳細(xì)講解記憶集和卡表

    Java?垃圾回收超詳細(xì)講解記憶集和卡表

    卡表就是記憶集的一種具體實(shí)現(xiàn),它定義了記憶集的記錄精度、與堆內(nèi)存的映射關(guān)系等。?關(guān)于卡表與記憶集的關(guān)系,不妨按照J(rèn)ava語言中HashMap與Map的關(guān)系來類比理解。記憶集是一種用于記錄從非收集區(qū)域指向收集區(qū)域的指針集合的抽象數(shù)據(jù)結(jié)構(gòu)
    2022-04-04

最新評論

白城市| 麻栗坡县| 上思县| 建昌县| 凌海市| 新野县| 蓝田县| 合水县| 昔阳县| 汾西县| 湖北省| 南乐县| 长寿区| 江津市| 益阳市| 沾化县| 中卫市| 沙坪坝区| 临高县| 永德县| 南部县| 始兴县| 柘荣县| 肇东市| 社会| 通渭县| 简阳市| 辽阳县| 望谟县| 高碑店市| 吴忠市| 惠来县| 康乐县| 平原县| 彝良县| 泰顺县| 汉沽区| 宾川县| 青海省| 旌德县| 革吉县|