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...