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

Java Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解

 更新時間:2020年07月21日 10:12:45   作者:大頭就是我  
這篇文章主要介紹了Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

好了,真正做開發(fā)也差不多一年了。一直都是看別人的博客,自己懶得寫,而且也不會寫博客,今天就開始慢慢的練習一下寫博客吧。前段時間剛好在公司遇到這樣的問題。

一、舉例說明

 select * from user where name = "dato"; 
 
 select * from user where name = #{name}; 
 
 select * from user where name = '${name}'; 

一般情況下,我們都不會注意到這里面有什么不一樣的地方。因為這些sql都可以達到我們的目的,去查詢名字叫dato的用戶。

二、區(qū)別

動態(tài) SQL 是 mybatis 的強大特性之一,也是它優(yōu)于其他 ORM 框架的一個重要原因。mybatis 在對 sql 語句進行預編譯之前,會對 sql 進行動態(tài)解析,解析為一個 BoundSql 對象,也是在此處對動態(tài) SQL 進行處理的。在動態(tài) SQL 解析階段, #{ } 和 ${ } 會有不同的表現(xiàn)

select * from user where name = #{name}; 

#{} 在動態(tài)解析的時候, 會解析成一個參數(shù)標記符。就是解析之后的語句是:

select * from user where name = ?; 

那么我們使用 ${}的時候

select * from user where name = '${name}'; 

${}在動態(tài)解析的時候,會將我們傳入的參數(shù)當做String字符串填充到我們的語句中,就會變成下面的語句

select * from user where name = "dato"; 

預編譯之前的 SQL 語句已經(jīng)不包含變量了,完全已經(jīng)是常量數(shù)據(jù)了。相當于我們普通沒有變量的sql了。

綜上所得, ${ } 變量的替換階段是在動態(tài) SQL 解析階段,而 #{ }變量的替換是在 DBMS 中。

這是 #{} 和 ${} 我們能看到的主要的區(qū)別,除此之外,還有以下區(qū)別:

  • 方式能夠很大程度防止sql注入。
  • $方式無法防止Sql注入。
  • $方式一般用于傳入數(shù)據(jù)庫對象,例如傳入表名.
  • 一般能用#的就別用$.

所以我們在使用mybatis的時候,盡量的使用#方式!?。∵@是大家要注意的地方

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

相關文章

  • SpringBoot中的404錯誤:原因、影響及解決策略

    SpringBoot中的404錯誤:原因、影響及解決策略

    本文詳細介紹了SpringBoot中404錯誤的出現(xiàn)原因、影響以及處理策略,404錯誤常見于URL路徑錯誤、控制器配置問題、靜態(tài)資源配置錯誤、依賴缺失或版本不兼容、配置錯誤和服務器配置問題,解決方法包括檢查URL路徑、審查控制器配置、配置靜態(tài)資源
    2025-02-02
  • Spring配置使用之Bean生命周期詳解

    Spring配置使用之Bean生命周期詳解

    這篇文章主要介紹了Spring配置使用之Bean生命周期詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Spring Boot 啟動加載數(shù)據(jù) CommandLineRunner的使用

    Spring Boot 啟動加載數(shù)據(jù) CommandLineRunner的使用

    本篇文章主要介紹了Spring Boot 啟動加載數(shù)據(jù) CommandLineRunner的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • 非常全面的Java?SpringBoot點贊功能實現(xiàn)

    非常全面的Java?SpringBoot點贊功能實現(xiàn)

    但是這些功能再項目中是高頻出現(xiàn)的,如果直接操作數(shù)據(jù)庫的話,對數(shù)據(jù)庫壓力太大。那遇到這個問題怎么解決?這篇文章主要給大家介紹了關于Java?SpringBoot點贊功能實現(xiàn)?的相關資料,需要的朋友可以參考下
    2022-01-01
  • Java 實現(xiàn)瀏覽器下載文件及文件預覽

    Java 實現(xiàn)瀏覽器下載文件及文件預覽

    這篇文章主要介紹了Java 實現(xiàn)瀏覽器下載文件及文件預覽,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 基于Spring開發(fā)之自定義標簽及其解析

    基于Spring開發(fā)之自定義標簽及其解析

    Spring框架是現(xiàn)在Java最流行的開源框架之一,需要實現(xiàn)一些自定義的標簽,主要是方便使用我們框架的人能夠快速、簡單進行配置,有興趣的可以了解一下。
    2017-04-04
  • 關于Springboot打成JAR包后讀取外部配置文件的問題

    關于Springboot打成JAR包后讀取外部配置文件的問題

    這篇文章主要介紹了關于Springboot打成JAR包后讀取外部配置文件的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • JDK多版本共存并自由切換的操作指南(本文為JDK8和JDK17)

    JDK多版本共存并自由切換的操作指南(本文為JDK8和JDK17)

    本文介紹了如何在Windows系統(tǒng)上配置多版本JDK(以JDK8和JDK17為例),并通過圖文結合的方式給大家講解了詳細步驟,具有一定的參考價值,需要的朋友可以參考下
    2025-03-03
  • java往php傳數(shù)據(jù)操作方法

    java往php傳數(shù)據(jù)操作方法

    在本篇內(nèi)容里小編給大家分享的是關于java往php傳數(shù)據(jù)操作方法和技巧,需要的朋友們可以跟著學習下。
    2018-12-12
  • Java SE使用數(shù)組實現(xiàn)高速數(shù)字轉換功能

    Java SE使用數(shù)組實現(xiàn)高速數(shù)字轉換功能

    隨著大數(shù)據(jù)時代的到來,數(shù)字轉換功能變得越來越重要,在Java開發(fā)中,數(shù)字轉換功能也是經(jīng)常用到的,下面我們就來學習一下如何使用Java SE數(shù)組實現(xiàn)高速的數(shù)字轉換功能吧
    2023-11-11

最新評論

遂溪县| 大丰市| 永德县| 浦江县| 阜新市| 开远市| 镇原县| 北辰区| 阿图什市| 滨州市| 廉江市| 株洲县| 南部县| 彭州市| 古丈县| 上杭县| 平谷区| 达日县| 元阳县| 宁波市| 聂荣县| 嵊州市| 且末县| 德庆县| 山阴县| 科技| 衡南县| 正定县| 永新县| 沙湾县| 东明县| 墨玉县| 营口市| 怀集县| 岚皋县| 南昌市| 新蔡县| 剑阁县| 布拖县| 察雅县| 扎囊县|