一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - MyBatis中#號與美元符號的區別

MyBatis中#號與美元符號的區別

2020-07-26 12:39java1993666 JAVA教程

#{變量名}可以進行預編譯、類型匹配等操作,#{變量名}會轉化為jdbc的類型。很多朋友不清楚在mybatis中#號與美元符號的不同,接下來通過本文給大家介紹兩者的區別,感興趣的朋友參考下吧

#{變量名}可以進行預編譯、類型匹配等操作,#{變量名}會轉化為jdbc的類型。

?
1
select * from tablename where id = #{id}

假設id的值為12,其中如果數據庫字段id為字符型,那么#{id}表示的就是'12',如果id為整型,那么id就是12,并且MyBatis會將上面SQL語句轉化為jdbc的select * from tablename where id=?,把?參數設置為id的值。

${變量名}不進行數據類型匹配,直接替換。

?
1
select * from tablename where id = ${id}

如果字段id為整型,sql語句就不會出錯,但是如果字段id為字符型, 那么sql語句應該寫成

?
1
select * from table where id = '${id}'

#方式能夠很大程度防止sql注入。

$方式無法方式sql注入。

$方式一般用于傳入數據庫對象,例如傳入表名。

盡量多用#方式,少用$方式。

mybatis框架作為一款半自動化的持久層框架,其sql語句都要我們自己來手動編寫,這個時候當然需要防止sql注入。其實Mybatis的sql是一個具有“輸入+輸出”功能,類似于函數的結構,如下:

?
1
2
3
4
select id="getBlogById" resultType="Blog" parameterType=”int”>
select id,title,author,content
from blog where id=#{id}
</select>

這里,parameterType標示了輸入的參數類型,resultType標示了輸出的參數類型。回應上文,如果我們想防止sql注入,理所當然地要在輸入參數上下功夫。上面代碼中高亮部分即輸入參數在sql中拼接的部分,傳入參數后,打印出執行的sql語句,會看到sql是這樣的:

?
1
select id,title,author,content from blog where id = ?

不管輸入什么參數,打印出的sql都是這樣的。這是因為mybatis啟用了預編譯功能,在sql執行前,會先將上面的sql發送給數據庫進行編譯,執行時,直接使用編譯好的sql,替換占位符“?”就可以了。因為sql注入只能對編譯過程起作用,所以這樣的方式就很好地避免了sql注入的問題。

以上所述是小編給大家介紹的MyBatis中#號與美元符號的區別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.csdn.net/java1993666/article/details/54377036

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产亚洲一欧美一区二区三区 | 日本一区二区视频在线观看 | 精品国产免费观看一区高清 | 欧美视| 高h校花| 国产一卡二卡四卡免费 | 故意短裙公车被强好爽在线播放 | 国产精品久久久久久久久久久搜索 | 日本三级做a全过程在线观看 | 精品久久久久久久久久香蕉 | 国产精品吹潮香蕉在线观看 | 欧美男女交配 | 无码任你躁久久久久久久 | 天天干天天日天天射天天操毛片 | 日韩天堂在线 | 高清国产欧美一v精品 | 波多野 在线 | 青青草精品在线 | 亚洲精品第二页 | 超级乱淫伦短篇小说做车 | 青青草99热久久 | 欧美日韩精品免费一区二区三区 | 美女机巴 | 国产不卡视频一区二区在线观看 | 日韩免费毛片视频杨思敏 | 极品虎白女在线观看一线天 | 国产精品美女久久久久网站 | 四虎在线精品免费高清在线 | 欧美黑人一级片 | 国产高清视频 | 欧美日韩一本 | 免费福利资源站在线视频 | 激情影院免费 | 1313午夜精品久久午夜片 | 欧美日韩在线观看一区二区 | 小泽玛丽av无码观看 | 久久精品麻豆国产天美传媒果冻 | 久久国产精品人妻中文 | 99久9在线视频 | 亚洲第一在线 | 欧美专区在线视频 |