麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > 綜合 > 正文

mybatis #與$的區別與用法

2024-07-21 02:53:05
字體:
來源:轉載
供稿:網友

隨著開發團隊轉投Google Code旗下,ibatis3.x正式更名為Mybatis

我在開發過程中,我主要是喜歡mybatis可以讓開發者靈活的編寫sql語句。其中動態變量算是用的最多的了。

mybatis支持兩種動態的往sql語句中嵌入變量的方式,一種是用#,另一種是$。

#appId#,使用#,是使用預編譯處理,mybatis會先用?占位(等同于PRepareStatement),再傳給配置的數據庫進行處理。數據庫處理時,會根據變量的類型,進行值替換。如果是VARCHAR,就會加上引號,這樣可以很好的防止sql注入。

$appid$,使用$,mybatis會直接進行值替換,變量類型不影響。如果需要匹配的是字符串,那么編寫的sql語句就需要手動的加上引號,比如  '$appid$',一些其他的函數也是類似的。一般只有在需要傳入表名、列名這些數據庫保留字段時,才會使用$$。因為是直接值替換,所以使用$是不安全的。假如在一個登陸場景下,開發者沒有手動加引號,用戶在密碼輸入框輸入 or 1=1 ,直接進行值替換,最后的sql語句可能就是   username = 'username' or 1=1 ,這樣,會找出所有的用戶信息。

mybatis只是做了sql替換,比如使用#就等同于prepareStatement,使用$就相當于開發者直接寫好了sql。真正做處理的還是數據庫服務器。比如預編譯,數據庫會在緩存中保留傳進來的預編譯,當下次有相同結構的sql請求執行時,數據庫就可以更快的進行處理。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品一区二区三区国产主播 | 中午字幕无线码一区2020 | 麻豆视频国产在线观看 | vidz 98hd| 悠悠成人资源亚洲一区二区 | 日本欧美一区二区三区视频麻豆 | 久久日本 | 九九热九九爱 | 国内精品久久久久影院不卡 | 欧美精品免费一区二区三区 | 国产亚洲精品久久久久久大师 | 色天使中文字幕 | 91麻豆精品国产91久久久更新资源速度超快 | 一级一级一级一级毛片 | asian裸体佳人pics | 双性精h调教灌尿打屁股的文案 | 成年人视频在线免费观看 | 国产成人av免费看 | 色播亚洲 | 欧美中文字幕一区二区三区亚洲 | 日本欧美在线播放 | 91久久久久久亚洲精品禁果 | 国产午夜精品一区二区三区四区 | 午夜视频在线免费播放 | 国产欧美精品综合一区 | 超碰人人做人人爱 | 舌头伸进添的我好爽高潮网站 | 本站只有精品 | 久久国产综合精品 | 欧美一区在线观看视频 | av在线免费网 | 久久精精品 | 日韩毛片一区二区三区 | 久久免费视频在线 | 久久精品伊人网 | 久久91久久久久麻豆精品 | 逼片视频 | 精品一区二区三区在线播放 | 日本中文字幕电影在线观看 | 蜜桃91丨九色丨蝌蚪91桃色 | 成人免费av在线 |