您好,登錄后才能下訂單哦!
這篇文章主要介紹“MyBatis的優(yōu)缺點(diǎn)是什么”,在日常操作中,相信很多人在MyBatis的優(yōu)缺點(diǎn)是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”MyBatis的優(yōu)缺點(diǎn)是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
它是一個(gè)優(yōu)秀的基于 Java 的持久層框架,它支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射等。
MyBatis 提供的持久層框架包括 SQL Maps 和 Data Access Objects(DAO), 避免了幾乎所有的 JDBC 代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集。MyBatis 可以對(duì)配置和原生Map使用簡(jiǎn)單的 XML 或注解,將接口和 Java POJOs(Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄。
MyBatis安裝簡(jiǎn)單, 只需將 mybatis-x.x.x.jar 文件置于 classpath 中即可。
如果使用 Maven 來(lái)構(gòu)建項(xiàng)目,則需將下面的 dependency 代碼置于 pom.xml 文件中:
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version> </dependency>
Mybatis的功能架構(gòu)主要分為三層:
API接口層:提供給外部使用的接口API,開(kāi)發(fā)人員通過(guò)這些本地API來(lái)操縱數(shù)據(jù)庫(kù)。接口層一接收到調(diào)用請(qǐng)求就會(huì)調(diào)用數(shù)據(jù)處理層來(lái)完成具體的數(shù)據(jù)處理。
數(shù)據(jù)處理層:負(fù)責(zé)具體的SQL查找、SQL解析、SQL執(zhí)行和執(zhí)行結(jié)果映射處理等。它主要的目的是根據(jù)調(diào)用的請(qǐng)求完成一次數(shù)據(jù)庫(kù)操作。
基礎(chǔ)支撐層:負(fù)責(zé)最基礎(chǔ)的功能支撐,包括連接管理、事務(wù)管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來(lái)作為最基礎(chǔ)的組件。為上層的數(shù)據(jù)處理層提供最基礎(chǔ)的支撐。
優(yōu)點(diǎn):
1. 簡(jiǎn)單易學(xué):小且簡(jiǎn)單。無(wú)第三方依賴(lài),安裝簡(jiǎn)單,只要兩個(gè)jar文件+配置幾個(gè)sql映射文件即可,好學(xué),好用,通過(guò)文檔和源代碼,可以比較完全的掌握它的設(shè)計(jì)思路和實(shí)現(xiàn)。
2. 靈活:mybatis不會(huì)對(duì)應(yīng)用程序或者數(shù)據(jù)庫(kù)的現(xiàn)有設(shè)計(jì)強(qiáng)加任何影響。 sql寫(xiě)在xml里,便于統(tǒng)一管理和優(yōu)化。通過(guò)sql基本上可以實(shí)現(xiàn)我們不使用數(shù)據(jù)訪問(wèn)框架可以實(shí)現(xiàn)的所有功能。
3. 解除sql與程序代碼的耦合:通過(guò)提供DAL層,將業(yè)務(wù)邏輯和數(shù)據(jù)訪問(wèn)邏輯分離,使系統(tǒng)的設(shè)計(jì)更清晰,更易維護(hù),更易單元測(cè)試。sql和代碼的分離,提高了可維護(hù)性。
4. 提供映射標(biāo)簽,支持對(duì)象與數(shù)據(jù)庫(kù)的orm字段關(guān)系映射。
5. 提供對(duì)象關(guān)系映射標(biāo)簽,支持對(duì)象關(guān)系組建維護(hù)。
6. 提供xml標(biāo)簽,支持編寫(xiě)動(dòng)態(tài)sql。
缺點(diǎn):
1. 編寫(xiě)SQL語(yǔ)句工作量很大,對(duì)于字段多、關(guān)聯(lián)表多時(shí),尤其明顯。
2. SQL語(yǔ)句依賴(lài)于數(shù)據(jù)庫(kù),導(dǎo)致數(shù)據(jù)庫(kù)移植性差,不能更換數(shù)據(jù)庫(kù)。
3. 框架還是比較簡(jiǎn)陋,功能尚有缺失,雖然簡(jiǎn)化了數(shù)據(jù)綁定代碼,但是整個(gè)底層數(shù)據(jù)庫(kù)查詢(xún)實(shí)際還是要自己寫(xiě)的,工作量也比較大,而且不太容易適應(yīng)快速數(shù)據(jù)庫(kù)修改。
4. 二級(jí)緩存機(jī)制不佳
到此,關(guān)于“MyBatis的優(yōu)缺點(diǎn)是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。