mybatis面試題 記錄

2021-10-07 23:10:36 字數 1578 閱讀 4133

1、mybatis對jdbc做了哪些封裝?

對jdbc運算元據庫的過程進行了封裝,使開發人員只需關注sql本身,而無需去花費精力去處理註冊驅動、

建立connection、建立statement、手動設定引數、結果集檢索等jdbc複雜的過程**。

2、mybatis如何對映?

通過namespace來關聯介面,namespace必須要跟你的介面路徑一致

4、mybatis中和${}與#{}的區別?

#{} 預編譯 可以防止sql注入 mybatis在處理#{}的時候,會將sql中的#{}替換為?號,呼叫preparedstatement的set方法來賦值。

字 符串

替換就是

將{} 字串替換 就是將

字串替換就

是將{}替換為變數的值

5、mybatis 實現一對一有幾種方式?具體怎麼操作的?

有聯合查詢和巢狀查詢,聯合查詢是幾個表聯合在一起,只查詢一次,通過在resultmap裡面配置association [əˌsoʊsiˈeɪʃn,əˌsoʊʃiˈeɪʃn]

節點配置一對一的類就可以完成。

巢狀查詢是先查乙個表,根據這個表裡面結果的外來鍵id,去另外乙個表裡查詢資料,也是通過resultmap配置assoction,但另外乙個表的查詢通過select屬性配置

6、mybatis 實現一對多有幾種方式?怎麼操作的?

二種方式分別為:聯合查詢 巢狀查詢

聯合查詢:聯合查詢是幾個表聯合在一起,只查詢一次,通過resultmap裡面配置collection節點配置一對多的類就可以完成。

巢狀查詢:巢狀查詢是先查乙個表,根據這個表裡面結果的外來鍵id,去另外乙個表查詢資料,也是通過配置collection,但另外乙個表是通過查詢select節點配置。

7、mybatis 裡面的動態sql是怎麼設定的?用什麼語法?

mybatis裡面的動態sql一般是通過if節點來實現,通過ognl語法來實現,如果要寫的完整的話必須要配合where,trim節點,

where節點是判斷包含節點有內容就插入where,否則不插入,trim節點是用來判斷如果動態語句是用and 或 or開始,那麼會

自動的把這個and或者or給去掉。

9、mybatis的執行流程?

伺服器啟動——>載入配置檔案(mybatisconfig.xml)–產生–>構建者類(xmlconfigbuilder)–呼叫parse()–>配置類(configuration)–build–>

會話工廠(sqlsessionfactory)–呼叫opensession()–>sqlsession物件——>executor執行器介面——>statement處理器——>結果集處理器

(resultsethandler)————>結果

10、持久層框架為什麼選擇mybatis?

因為mybatis是最簡單的持久層框架,更適合新手直接上手操作

可以自己去編寫原生sql

提供xml標籤,支援編寫動態sql

提供對映標籤,支援物件與資料庫的orm欄位關係對映

可以應對需求量變化較多的專案,正符合目前流行的網際網路專案

sql寫在xml檔案裡,便於統一管理和優化,可重用、降低耦合度

面試題記錄

面試題記錄 2012年6月13日杭州某網路技術公司 1,空指標自加 int p int pa null p pa p 求p的值 這道題考的貌似指標的加法,因為對於空指標比較敏感直接感覺有問題,所以填寫出錯.到底如何呢?直接反彙編之 int p int pa null 010d14f1 mov dwo...

面試題記錄

筆試面試題總結 1,var a 0 function a catch e 0 this.b bbb var aa new a settimeout function 0 settimeout的作用域是window,所以結果為1,2,bbb,b但是將 中的第二個settimeout去掉之後,結果為1,...

面試題記錄

1 linux實時檢視日誌 tail f catalina.out 2 linux檢視埠是否被占用 etstat tunlp grep 埠號,用於檢視指定埠號的程序情況 lsof i 80 3 linux查詢abc開頭的檔案的第一行輸出到指定檔案 system bin sh ls users zha...