前言
不少人說 mybatis重不重要?這裏再說下,互聯網公司基本都是用mybatis作爲持久層框架的,因此mybatis是必定要學的。
程序員80%時間都在CRUD,對了mybatis就是幹這個的
什麼是 MyBatis ?
MyBatis是一個實現了JPA規範的用來鏈接數據庫並對其進行增刪改查操做的開源框架 (就和傳統的JDBC同樣,就是個鏈接數據庫的東西),其實,它底層就是一個JDBC封裝的組件。MyBatis的前身是Ibatis,Ibatis建立與2002年最初爲Apache下面的一個開源項目,2010遷移到google code下面並更名爲MyBatis。
MyBatis雖然實現了JPA可是它並非一個完徹底全的ORM組件,而是一個基於SQL開發的半ORM組件。
而Hibernate是一個完徹底全的ORM組件,它是徹底基於對象來操做數據庫中的記錄,並不和MyBatis同樣是一個假把式。
爲何咱們要⽤Mybatis?
⽆論是Mybatis、Hibernate都是ORM的⼀種實現框架,都是對JDBC的⼀種封裝!
到⽬前爲⽌,咱們已經在持久層中學了⼏種技術了...
那咱們爲啥還要學Mybatis呢???如今Mybatis在業內⼤⾏其道,那爲啥他能那麼⽕呢??
Hibernate是⼀個⽐較⽼舊的框架,⽤過他的同窗都知道,只要你會⽤,⽤起來⼗分舒服...啥sql代碼都不⽤寫...可是呢,它也是有的缺點::處理複雜業務時,靈活度差, 複雜的HQL難寫難理解,例如多表查詢的HQL語句,⽽JDBC很容易理解,就那麼⼏個固定的步驟,就是開發起來太麻煩了,由於什麼都要咱們⾃⼰⼲..
咱們能夠認爲,Mybatis就是jdbc和Hibernate之間的⼀個平衡點...畢竟如今業界都是⽤這個框架,咱們也不能不學呀!
今天分享字節跳動珍藏版的Mybatis文檔,能夠幫助你快速入門Mybatis!
關注公衆號:程序員追風,回覆011 領取這份mybatisP文檔(含思惟導圖和麪試題)
關於Mybatis的知識點總結了一個思惟導圖,分享給你們。
互聯網公司常問的Mybatis面試題總結
2.Mybatis都有哪些Executor執行器?它們之間的區別是什麼?
3.Mybatis中如何指定使用哪種Executor執行器?
4.Mybatis是否支持延遲加載?若是支持,它的實現原理是什麼?
10.當實體類中的屬性名和表中的字段名不同 ,怎麼辦
12.什麼是MyBatis的接口綁定?有哪些實現方式?
13.使用MyBatis的mapper接口調用時有哪些要求?
14.最佳實踐中,一般一個Xml映射文件,都會寫一個Dao接口與之對應,請問,這個Dao接口的工做原理是什麼?Dao接口裏的方法,參數不一樣時,方法能重載嗎?
15.Mybatis的Xml映射文件中,不一樣的Xml映射文件,id是否能夠重複?
16.簡述Mybatis的Xml映射文件和Mybatis內部數據結構之間的映射關係?
17.Mybatis是如何將sql執行結果封裝爲目標對象並返回的?都有哪些映射形式?
19.MyBatis實現一對一,一對多有幾種方式,怎麼操做的?
21.Mybatis動態sql是作什麼的?都有哪些動態sql?能簡述一下動態sql的執行原理不?
23.簡述Mybatis的插件運行原理,以及如何編寫一個插件?
常見的這些Mybatis面試題答案都整理成了PDF文檔。
關注公衆號:程序員追風,回覆011 領取這份mybatisP文檔(含思惟導圖和麪試題)
總結
學習是一生的事情,學完一段時間以後,想要檢查學習效果如何,其實最好的方法就是可本身去總結一下。好比我在學習的時候會本身作筆記,而後本身再總結,本身的作的筆記也可方便後續的複習,且都是本身的理解。