面試集錦1 精講 和 的區別是什麼?

2021-09-11 17:17:43 字數 957 閱讀 4127

經常碰到這樣的面試題目:#{}和${}的區別是什麼?

網上的答案是:#{}是預編譯處理,katex parse error: expected 'eof', got '#' at position 20: …符串替換。mybatis在處理#̲{}時,會將sql中的#{}替…{}時,就是把${}替換成變數的值。使用#{}可以有效的防止sql注入,提高系統安全性。

對於這個題目我感覺要抓住兩點:

(1)符號一

般用來當

作佔位符

,常使用

linu

x指令碼的

人應該對

此有更深

的體會吧

。既然是

佔位符,

當然就是

被用來替

換的。知

道了這點

就能很容

易區

分符號一般用來當作佔位符,常使用linux指令碼的人應該對此有更深的體會吧。既然是佔位符,當然就是被用來替換的。知道了這點就能很容易區分

符號一般用來

當作佔位

符,常使

用lin

ux指令碼

的人應該

對此有更

深的體會

吧。既然

是佔位符

,當然就

是被用來

替換的。

知道了這

點就能很

容易區分

和#,從而不容易記錯了。

(2)預編譯的機制。預編譯是提前對sql語句進行預編譯,而其後注入的引數將不會再進行sql編譯。我們知道,sql注入是發生在編譯的過程中,因為惡意注入了某些特殊字元,最後被編譯成了惡意的執行操作。而預編譯機制則可以很好的防止sql注入。

萬事洞明皆學問,對於mybatis與sql這兩門技術而言,看似簡單,但是深挖進去會發現裡面的東西還是挺多的。要想成為一名合格的開發人員,需要不斷的去學習,更需要不斷的去思考。可以參考:系統的學習sql和mybatis的東西,

GBDT,XGBoost,RF的區別是什麼?

rf gbdt和xgboost都屬於整合學習 ensemble learning 整合學習的目的是通過結合多個基學習器的 結果來改善單個學習器的泛化能力和魯棒性。根據個體學習器的生成方式,目前的整合學習方法大致分為兩大類 即個體學習器之間存在強依賴關係 必須序列生成的序列化方法,以及個體學習器間不存...

LR,SVM,RF的區別是什麼?

1 lr和svm都是分類演算法,lr和svm都是監督學習演算法,都是判別模型。2 如果不考慮核函式,lr和svm都是線性分類演算法,也就是說他們的分類決策面都是線性的。lr的優缺點 1.適合需要得到乙個分類概率的場景 2.實現效率較高 3.對邏輯回歸而言,多重共線性並不是問題,它可以結合l2正則化來...

ERP CRM OA的區別是什麼

沒有dms的資料分析支援,營銷工作不好開展還 得忙死 正如erp的根據企業資源來定的計畫能不能實現要 依人品 所以得出沒有crm的話銷售是會 出人命 的這樣乙個觀點 雖然只是乙個段子,但卻基本說明了erp 企業資源計畫管理 crm 客戶關係管理 和oa 辦公自動化流程管理 之間的區別和這些管理軟體所...