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

Mybatis中${param}與#{param}的區(qū)別說明

 更新時(shí)間:2022年06月22日 10:42:58   作者:回首一輩子  
這篇文章主要介紹了Mybatis中${param}與#{param}的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

${param}與#{param}的區(qū)別

${param}表達(dá)式主要用戶獲取配置文件數(shù)據(jù),DAO接口中的參數(shù)信息,當(dāng) $ 出現(xiàn)在映射文件的 SQl 語(yǔ)句中時(shí)創(chuàng)建的不是預(yù)編譯的 SQL ,而是字符串的拼接有可能會(huì)導(dǎo)致 SQL 注入的問題,所以一般使用 $ 接收 DAO 參數(shù)時(shí),這些參數(shù)一般是字段名,表名等.例如 order by {column}

#{param} 表達(dá)式主要是用戶獲取 DAO 中的參數(shù)數(shù)據(jù),在映射文件的SQL 語(yǔ)句中出現(xiàn) #{} 表達(dá)式,底層會(huì)創(chuàng)建預(yù)編譯的 SQL .性能會(huì)相對(duì)較好

${} 獲取 DAO 參數(shù)數(shù)據(jù)時(shí),參數(shù)必須使用 @param 注解進(jìn)行修飾

#{} 獲取 DAO 參數(shù)數(shù)據(jù)時(shí),假如參數(shù)個(gè)數(shù)多于一個(gè),可有選擇的使用@param

Mybatis中#{}與${}使用總結(jié)

#{ }與${ }的區(qū)別

1、#{ }將傳入的數(shù)據(jù)都當(dāng)成一個(gè)字符串,會(huì)對(duì)自動(dòng)傳入的數(shù)據(jù)加一個(gè)雙引號(hào)。 如:

delete from user where name= #{name}

實(shí)際相當(dāng)于一個(gè)占位符:

delete from user where name= ?

如果傳入的值是123,那么解析成sql時(shí)的值為 delete from user where name= 123, 如果傳入的值是字符串 Rose,則解析成的sql為delete from user where name= 'Rose'

2、${ }將傳入的數(shù)據(jù)直接顯示生成在sql中,即原樣拼接。對(duì)于

delete from user where name= ${name}

如果傳入的值int類型的123,那么解析成sql時(shí)的值為

delete from user where name= 123

如果傳入的值是字符串Rose,則解析成的sql為

delete from user where name= Rose

這樣就是錯(cuò)誤的,必須將原來的語(yǔ)句改為

delete from user where name= '${name}'

3、#方式能夠防止sql注入;$方式無(wú)法防止Sql注入

$方式一般用于傳入數(shù)據(jù)庫(kù)對(duì)象,例如傳入表名

默認(rèn)情況下,使用#{}格式的語(yǔ)法會(huì)導(dǎo)致MyBatis創(chuàng)建預(yù)處理語(yǔ)句屬性并以它為背景設(shè)置安全的值。這樣做很安全,很迅速也是首選做法,有時(shí)只是想直接在SQL語(yǔ)句中插入一個(gè)不改變的字符串,可以使用${ }。

使用總結(jié)

1、#{ }:多用于傳遞查詢的參數(shù);一般用在用戶輸入值的地方,在sql中:字段 比較符號(hào)(=、>、<、!=、<>) #{用戶輸入的值};

  • 如果傳遞參數(shù)是基本類型(非字符類型),獲取參數(shù)是原樣獲取, 如果是字符串,#{}獲取時(shí)會(huì)自動(dòng)給加一個(gè)引號(hào)。
  • 對(duì)于基本類型和String類型可以在#{ }內(nèi)任意填寫,一半填寫對(duì)應(yīng)值。

2、${ }:一般用于傳入數(shù)據(jù)庫(kù)對(duì)象,例如傳入表名,如:$(表名);一般用于order by的后面,如:order by $(字段);表名作為變量時(shí),必須使用 ${ };用在我們能夠確定值的地方,也就是我們程序員自己賦值的地方;

  • 如果傳遞是基本類型的闡述,int,String等等。${}只能寫value,如${value}

3、如果傳遞參數(shù)是對(duì)象:#{}和${}都是ognl表達(dá)式來獲取 (對(duì)象導(dǎo)航語(yǔ)言 屬性.屬性.屬性)

  • 如:
<update id="updateUserByID" parameterType="domain.User">
?update user set username=#{username},sex=#{sex},birthday=#{birthday} where id=#{id}
</update>
  • #{}內(nèi)的內(nèi)容必須是User對(duì)應(yīng)的屬性值。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲

    java實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java用自定義的類作為HashMap的key值實(shí)例

    Java用自定義的類作為HashMap的key值實(shí)例

    下面小編就為大家?guī)硪黄狫ava用自定義的類作為HashMap的key值實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • 基于Springboot+Vue實(shí)現(xiàn)的在線答題闖關(guān)系統(tǒng)全過程

    基于Springboot+Vue實(shí)現(xiàn)的在線答題闖關(guān)系統(tǒng)全過程

    這篇文章主要介紹了基于Springboot+Vue實(shí)現(xiàn)的在線答題闖關(guān)系統(tǒng)的相關(guān)資料,文中包括前端Vue.js、后端SpringBoot及MySQL數(shù)據(jù)庫(kù)的使用,系統(tǒng)功能涵蓋順序出題、體型練習(xí)、隨機(jī)出題、錯(cuò)題本、收藏題和答題統(tǒng)計(jì)等,需要的朋友可以參考下
    2024-12-12
  • spring的幾個(gè)重要類和接口(詳解)

    spring的幾個(gè)重要類和接口(詳解)

    下面小編就為大家?guī)硪黄猻pring的幾個(gè)重要類和接口(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java字符串?dāng)?shù)組的創(chuàng)建代碼示例

    Java字符串?dāng)?shù)組的創(chuàng)建代碼示例

    這篇文章主要介紹了Java中字符串?dāng)?shù)組的聲明、初始化、默認(rèn)值、遍歷和常見操作,文中通過代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2025-03-03
  • Java實(shí)現(xiàn)Redis延時(shí)消息隊(duì)列

    Java實(shí)現(xiàn)Redis延時(shí)消息隊(duì)列

    本文主要介紹了Java實(shí)現(xiàn)Redis延時(shí)消息隊(duì)列,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 如何在Intellij中安裝LeetCode刷題插件方便Java刷題

    如何在Intellij中安裝LeetCode刷題插件方便Java刷題

    這篇文章主要介紹了如何在Intellij中安裝LeetCode刷題插件方便Java刷題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • springboot?vue測(cè)試列表遞歸查詢子節(jié)點(diǎn)下的接口功能實(shí)現(xiàn)

    springboot?vue測(cè)試列表遞歸查詢子節(jié)點(diǎn)下的接口功能實(shí)現(xiàn)

    這篇文章主要為大家介紹了springboot?vue測(cè)試列表遞歸查詢子節(jié)點(diǎn)下的接口功能實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Java的方法和this關(guān)鍵字如何理解與應(yīng)用

    Java的方法和this關(guān)鍵字如何理解與應(yīng)用

    Java語(yǔ)言中的“方法”(Method)在其他語(yǔ)言當(dāng)中也可能被稱為“函數(shù)”(Function)。對(duì)于一些復(fù)雜的代碼邏輯,如果希望重復(fù)使用這些代碼,并且做到“隨時(shí)任意使用”,那么就可以將這些代碼放在一個(gè)大括號(hào){}當(dāng)中,并且起一個(gè)名字。使用代碼的時(shí)候,直接找到名字調(diào)用即可
    2021-10-10
  • Nginx啟用壓縮及開啟gzip 壓縮的方法

    Nginx啟用壓縮及開啟gzip 壓縮的方法

    這篇文章主要介紹了Nginx啟用壓縮及開啟gzip 壓縮的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08

最新評(píng)論

东城区| 荔波县| 兴隆县| 北京市| 茌平县| 石屏县| 延寿县| 汉源县| 平安县| 鸡西市| 天台县| 陆河县| 深圳市| 阆中市| 乃东县| 永胜县| 牙克石市| 石屏县| 离岛区| 佛教| 文安县| 彭阳县| 衡山县| 界首市| 屏东县| 磐安县| 宁明县| 新晃| 获嘉县| 航空| 靖安县| 田东县| 迭部县| 邢台市| 无锡市| 大姚县| 龙陵县| 双鸭山市| 淳化县| 庆安县| 鹤庆县|