欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis中#{}和${}有哪些區(qū)別

 更新時(shí)間:2021年12月07日 10:16:05   作者:嫣紅姹梓  
大家好,本篇文章主要講的是MyBatis中#{}和${}區(qū)別,感興趣的同學(xué)趕快來看一看,對你有幫助的話記得收藏一下,方向下次瀏覽

前言

在MyBatis 的映射配置文件中,動(dòng)態(tài)傳遞參數(shù)有兩種方式:

1、#{} 占位符

2、${} 拼接符

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

區(qū)別1

#{} 為參數(shù)占位符 ?,即sql 預(yù)編譯

${} 為字符串替換,即 sql 拼接

區(qū)別2、

#{}:動(dòng)態(tài)解析 -> 預(yù)編譯 -> 執(zhí)行

${}:動(dòng)態(tài)解析 -> 編譯 -> 執(zhí)行

區(qū)別 3、

#{} 的變量替換是在DBMS 中

${} 的變量替換是在 DBMS 外

區(qū)別 4、

變量替換后,#{} 對應(yīng)的變量自動(dòng)加上單引號(hào)''

變量替換后,${} 對應(yīng)的變量不會(huì)加上單引號(hào) ''

區(qū)別 5、

#{} 能防止sql 注入

${} 不能防止sql 注入

#{} 和 ${} 的實(shí)例:假設(shè)傳入?yún)?shù)為 1

實(shí)例步驟一

#{}:select * from t_user where uid=#{uid}

${}:select * from t_user where uid= '${uid}'

實(shí)例步驟二

#{}:select * from t_user where uid= ?

${}:select * from t_user where uid= '1'

實(shí)例步驟三

#{}:select * from t_user where uid= '1'

${}:select * from t_user where uid= '1'

#{} 和 ${} 的大括號(hào)中的值

單個(gè)參數(shù)的情形

#{}

在這里插入圖片描述

${}

在這里插入圖片描述
在這里插入圖片描述

多個(gè)參數(shù)的情形 #{}

在這里插入圖片描述
在這里插入圖片描述

${}

在這里插入圖片描述
在這里插入圖片描述

#{} 和 ${} 在使用中的技巧和建議

1、不論是單個(gè)參數(shù),還是多個(gè)參數(shù),一律都建議使用注解@Param("")

2、 能用 #{} 的地方就用 #{},不用或少用${}

3、表名作參數(shù)時(shí),必須用${}。如:select * from ${tableName}

4、order by 時(shí),必須用 ${}。如:select * from t_user order by ${columnName}

5、表名處用#{}會(huì)直接報(bào)錯(cuò);order by后面用#{}排序不生效

6、使用 ${} 時(shí),要注意何時(shí)加或不加單引號(hào),即${} 和 '${}'。一般字段類型為char或者varchar時(shí)需要加單引號(hào)

總結(jié)

到此這篇關(guān)于MyBatis中#{}和${}有哪些區(qū)別的文章就介紹到這了,更多相關(guān)MyBatis中#{}和${}區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java8 實(shí)現(xiàn)stream將對象集合list中抽取屬性集合轉(zhuǎn)化為map或list

    Java8 實(shí)現(xiàn)stream將對象集合list中抽取屬性集合轉(zhuǎn)化為map或list

    這篇文章主要介紹了Java8 實(shí)現(xiàn)stream將對象集合list中抽取屬性集合轉(zhuǎn)化為map或list的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Springboot中實(shí)現(xiàn)接口冪等性的4種方案小結(jié)

    Springboot中實(shí)現(xiàn)接口冪等性的4種方案小結(jié)

    本文主要介紹了Springboot中實(shí)現(xiàn)接口冪等性,包含數(shù)據(jù)庫的冪等,數(shù)據(jù)庫的冪等,Redis的冪等性和Token + 時(shí)間戳的冪等性,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 一篇文章讓你三分鐘學(xué)會(huì)Java枚舉

    一篇文章讓你三分鐘學(xué)會(huì)Java枚舉

    這篇文章主要給大家介紹了如何通過三分鐘學(xué)會(huì)Java枚舉的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 詳解如何通過Java實(shí)現(xiàn)類似Nginx代理

    詳解如何通過Java實(shí)現(xiàn)類似Nginx代理

    最近遇到一個(gè)問題,在內(nèi)網(wǎng)環(huán)境中部署的項(xiàng)目需要調(diào)用外網(wǎng)完成一些應(yīng)用,一般情況我們可以通過增加一臺(tái)機(jī)器,部署到可以訪問外網(wǎng)的服務(wù)器上,然后內(nèi)網(wǎng)直接連接該機(jī)器通過Nginx進(jìn)行代理即可,所以本文介紹了如何通過Java實(shí)現(xiàn)類似Nginx代理,需要的朋友可以參考下
    2024-08-08
  • SpringBoot使用validation進(jìn)行自參數(shù)校驗(yàn)的方法

    SpringBoot使用validation進(jìn)行自參數(shù)校驗(yàn)的方法

    在SpringBoot項(xiàng)目中,利用validation依賴可以通過注解方式校驗(yàn)數(shù)據(jù)庫交互參數(shù),提高代碼可讀性和維護(hù)性,此方法避免了硬編碼校驗(yàn)規(guī)則,方便后期規(guī)則變更,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • maven在settings.xml和pom.xml中指定jdk版本編譯的方法

    maven在settings.xml和pom.xml中指定jdk版本編譯的方法

    在開發(fā)Java應(yīng)用時(shí),通常需要指定要使用的Java版本,下面這篇文章主要給大家介紹了關(guān)于maven在settings.xm和pom.xml中指定jdk版本編譯的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • Springboot常用注解及配置文件加載順序詳解

    Springboot常用注解及配置文件加載順序詳解

    這篇文章主要介紹了Springboot常用注解及配置文件加載順序,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • SpringBoot+Redis防止惡意刷新與暴力請求接口的實(shí)現(xiàn)

    SpringBoot+Redis防止惡意刷新與暴力請求接口的實(shí)現(xiàn)

    這篇文章主要為大家介紹了如何利用springboot和Redis來實(shí)現(xiàn)防止惡意刷新與暴力請求接口,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-06-06
  • Java實(shí)現(xiàn)最小生成樹算法詳解

    Java實(shí)現(xiàn)最小生成樹算法詳解

    這篇文章主要介紹了如何在Java中實(shí)現(xiàn)最小生成樹算法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-04-04
  • java.exe和javaw.exe的區(qū)別及使用方法

    java.exe和javaw.exe的區(qū)別及使用方法

    這篇文章主要介紹了java.exe和javaw.exe的區(qū)別及使用方法,需要的朋友可以參考下
    2014-04-04

最新評(píng)論