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

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

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

前言

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

1、#{} 占位符

2、${} 拼接符

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

區(qū)別1

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

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

區(qū)別2、

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

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

區(qū)別 3、

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

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

區(qū)別 4、

變量替換后,#{} 對應的變量自動加上單引號''

變量替換后,${} 對應的變量不會加上單引號 ''

區(qū)別 5、

#{} 能防止sql 注入

${} 不能防止sql 注入

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

實例步驟一

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

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

實例步驟二

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

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

實例步驟三

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

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

#{} 和 ${} 的大括號中的值

單個參數(shù)的情形

#{}

在這里插入圖片描述

${}

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

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

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

${}

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

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

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

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

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

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

5、表名處用#{}會直接報錯;order by后面用#{}排序不生效

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

總結

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

相關文章

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

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

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

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

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

    一篇文章讓你三分鐘學會Java枚舉

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

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

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

    SpringBoot使用validation進行自參數(shù)校驗的方法

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

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

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

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

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

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

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

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

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

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

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

最新評論