一、MyBatis流行的原因
1、容易上手,學習門檻低
mybatis它是一個優(yōu)異的開源持久層框架,mybatis之所以很流行,是因為mybatis很容易上手,開發(fā)速度很快,學習門檻很低,想要真正掌握myabatis也很容易,程序員就可以直接編寫原生的sql語句,我們可以自己控制sql語句的執(zhí)行性能。mybatis使用場景是對關系數(shù)據(jù)模型要求不高的軟件使用,比如電商網(wǎng)站軟件需要要求變化頻繁,如果需求變化就立馬要求輸出結果,這是使用mybatis就有好處了。
2、sql優(yōu)化性能好
mybatis在sql優(yōu)化性能方面比Hibernate高得多,Hibernate得查詢回將表中的所有字段都給你查出來,這樣就會影響性能的消耗,然后mybatis的sql語句程序員可以自己動手編寫,可以按需求指定的字段進行查詢,當然Hibernate也可以自己編寫sql語句來指定查詢所需要的字段,這樣很顯然的不合理,相當破壞了Hibernate開發(fā)的簡潔性,所有mybatis越來越被大廠流行使用的原因。
3、查詢緩存特性強大
mybatis在緩存機制方面有一個很強的查詢緩存特性非常的強大,程序員可以非常方便的配置和定制,但是在使用過程中需要注意的是,假如你不能完全確定數(shù)據(jù)更新操作的范圍,就應該避免使用Cache,不然的話可能出現(xiàn)系統(tǒng)的運行帶來了一個很大的隱患,當然使用過程中注意就可以。
二、Mybatis的功能架構
1、API接口層
提供給外部使用的接口API,開發(fā)人員通過這些本地API來操縱數(shù)據(jù)庫。接口層一接收到調用請求就會調用數(shù)據(jù)處理層來完成具體的數(shù)據(jù)處理。接口是MyBatis提供給開發(fā)人員的一套API,通過SqlSession接口和Mapper接口,開發(fā)人員可以通知MyBatis框架調用哪一條SQL命令以及SQL命令關聯(lián)參數(shù)。
2、數(shù)據(jù)處理層
負責具體的SQL查找、SQL解析、SQL執(zhí)行和執(zhí)行結果映射處理等。它主要的目的是根據(jù)調用的請求完成一次數(shù)據(jù)庫操作。
MyBatis框架內部的核心實現(xiàn),來完成對映射文件的解析與數(shù)據(jù)處理對Mapper.xml中的參數(shù)進行參數(shù)解析與參數(shù)綁定——(ORM)對Mapper.xml中的SQL語句解析執(zhí)行SQL,調用底層JDBC進行數(shù)據(jù)庫從操作(即支撐層)結果集映射解析與結果集映射處理3、基礎支撐層
負責最基礎的功能支撐,包括連接管理、事務管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來作為最基礎的組件。為上層的數(shù)據(jù)處理層提供最基礎的支撐。用來完成MyBatis與數(shù)據(jù)庫基本連接方式以及SQL命令與配置文件對應,主要負責:
對 MyBatis 與 數(shù)據(jù)庫連接方式 的管理MyBatis 對事務管理方式的統(tǒng)一處理配置文件加載(例如延遲加載)MyBatis查詢緩存的管理延伸閱讀1:MyBatis概念
Mybatis是一個半ORM(對象關系映射)框架,底層封裝了JDBC,是程序員在開發(fā)時只需要關注SQL語句本身,不需要花費精力去處理加載驅動、創(chuàng)建連接、創(chuàng)建statement等繁雜的過程,使得程序員可以花更多的精力放到業(yè)務開發(fā)中。