最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

MyBatis架構(gòu)的優(yōu)點(diǎn)及缺點(diǎn)

2023-09-12 16:27 作者:中培IT學(xué)院  | 我要投稿

Mybatis簡(jiǎn)介

MyBatis是一款優(yōu)秀的持久層框架,它支持定制化SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。

1、Mybatis是一個(gè)半ORM(對(duì)象關(guān)系映射)框架,底層封裝了JDBC,是程序員在開(kāi)發(fā)時(shí)只需要關(guān)注SQL語(yǔ)句本身,不需要花費(fèi)精力去處理加載驅(qū)動(dòng)、創(chuàng)建連接、創(chuàng)建statement等繁雜的過(guò)程。使得程序員可以花更多的精力放到業(yè)務(wù)開(kāi)發(fā)中。另外,程序員直接編寫(xiě)原生態(tài)sql,嚴(yán)格控制sql執(zhí)行性能,靈活度高。

2、MyBatis可以使用簡(jiǎn)單的XML文件或注解方式來(lái)配置和映射原生信息,將POJO映射成數(shù)據(jù)庫(kù)中的記錄,避免了幾乎所有的JDBC代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集。

3、通過(guò)xml文件或注解的方式將要執(zhí)行的各種statement配置起來(lái),并通過(guò)java對(duì)象和statement中sql的動(dòng)態(tài)參數(shù)進(jìn)行映射生成最終執(zhí)行的sql語(yǔ)句,最后由mybatis框架執(zhí)行sql并將結(jié)果映射為java對(duì)象并返回。(從執(zhí)行sql到返回result的過(guò)程)。

?


Mybaits的優(yōu)點(diǎn)

1、SQL語(yǔ)句和代碼分離

便于統(tǒng)一管理和維護(hù),不必再Java代碼中調(diào)式SQL語(yǔ)句。但是當(dāng)SQL語(yǔ)句出錯(cuò)時(shí),控制臺(tái)不會(huì)打印Log,解決辦法--引用log4j

2、用標(biāo)簽拼接SQL語(yǔ)句

用標(biāo)簽代替JAVA代碼雖然寫(xiě)簡(jiǎn)單SQL語(yǔ)句時(shí)方便了許多,但是復(fù)雜的語(yǔ)句拼接難度大。

3、結(jié)果集和JAVA對(duì)象自動(dòng)映射

寫(xiě)過(guò)hibernate的都知道,hibernate連接數(shù)據(jù)庫(kù)生成SQL語(yǔ)句的時(shí)候,會(huì)自動(dòng)生成數(shù)據(jù)庫(kù)實(shí)體類(lèi)和其映射文件,在mybaits中,它幫我們做了這件事情。但是對(duì)數(shù)據(jù)庫(kù)的字段要求較高,實(shí)體類(lèi)和配置文件需要手寫(xiě)。

4、即時(shí)加載

在一個(gè)頁(yè)面同時(shí)顯示大量數(shù)據(jù)時(shí),hibernate的延時(shí)加載會(huì)創(chuàng)建大量的代理類(lèi),消耗資源.mybaits并不通過(guò)延時(shí)訪問(wèn)數(shù)據(jù)庫(kù)。

MyBatis框架的缺點(diǎn)

1、SQL語(yǔ)句的編寫(xiě)工作量較大,尤其當(dāng)字段多、關(guān)聯(lián)表多時(shí),對(duì)開(kāi)發(fā)人員編寫(xiě)SQL語(yǔ)句的功底有一定要求。

2、SQL語(yǔ)句依賴于數(shù)據(jù)庫(kù),導(dǎo)致數(shù)據(jù)庫(kù)移植性差,不能隨意更換數(shù)據(jù)庫(kù)。

MyBatis框架適用場(chǎng)合

1、MyBatis專(zhuān)注于SQL本身,是一個(gè)足夠靈活的DAO層解決方案。

2、對(duì)性能的要求很高,或者需求變化較多的項(xiàng)目,如互聯(lián)網(wǎng)項(xiàng)目,MyBatis將是不錯(cuò)的選擇。

MyBatis與Hibernate的比較

1、兩者最大的區(qū)別:

針對(duì)簡(jiǎn)單邏輯,Hibernate和MyBatis都有相應(yīng)的代碼生成工具,可以生成簡(jiǎn)單基本的DAO層方法。

針對(duì)高級(jí)查詢,Mybatis需要手動(dòng)編寫(xiě)SQL語(yǔ)句,以及ResultMap。而Hibernate有良好的映射機(jī)制,開(kāi)發(fā)者無(wú)需關(guān)心SQL的生成與結(jié)果映射,可以更專(zhuān)注于業(yè)務(wù)流程。

2、開(kāi)發(fā)難度對(duì)比

Hibernate的開(kāi)發(fā)難度要大于Mybatis。主要由于Hibernate比較復(fù)雜、龐大,學(xué)習(xí)周期較長(zhǎng)。

而Mybatis則相對(duì)簡(jiǎn)單一些,并且Mybatis主要依賴于sql的書(shū)寫(xiě),讓開(kāi)發(fā)者感覺(jué)更熟悉。

3、sql書(shū)寫(xiě)比較

Mybatis的SQL是手動(dòng)編寫(xiě)的,所以可以按需求指定查詢的字段。不過(guò)沒(méi)有自己的日志統(tǒng)計(jì),所以要借助log4j來(lái)記錄日志。

Hibernate也可以自己寫(xiě)SQL來(lái)指定需要查詢的字段,但這樣就破壞了Hibernate開(kāi)發(fā)的簡(jiǎn)潔性。不過(guò)Hibernate具有自己的日志統(tǒng)計(jì)。

4、數(shù)據(jù)庫(kù)擴(kuò)展性比較

Mybatis由于所有SQL都是依賴數(shù)據(jù)庫(kù)書(shū)寫(xiě)的,所以擴(kuò)展性,遷移性比較差。

Hibernate與數(shù)據(jù)庫(kù)具體的關(guān)聯(lián)都在XML中,所以HQL對(duì)具體是用什么數(shù)據(jù)庫(kù)并不是很關(guān)心。

5、緩存機(jī)制比較

相同點(diǎn):Hibernate和Mybatis的二級(jí)緩存除了采用系統(tǒng)默認(rèn)的緩存機(jī)制外,都可以通過(guò)實(shí)現(xiàn)你自己的緩存或?yàn)槠渌谌骄彺娣桨?,?chuàng)建適配器來(lái)完全覆蓋緩存行為。

中培IT學(xué)院企業(yè)級(jí)JAVA高級(jí)開(kāi)發(fā)技術(shù)實(shí)戰(zhàn)培訓(xùn)班,將于9月23日在三亞開(kāi)班,資深專(zhuān)家詳細(xì)講解MyBatis架構(gòu)原理及使用,課程結(jié)束由中國(guó)信息化培訓(xùn)中心頒發(fā)《JAVA高級(jí)開(kāi)發(fā)工程師》證書(shū),證書(shū)可作為專(zhuān)業(yè)技術(shù)人員職業(yè)能力考核的證明,以及專(zhuān)業(yè)技術(shù)人員崗位聘用、任職、定級(jí)和晉升職務(wù)的重要依據(jù)。如有對(duì)JAVA開(kāi)發(fā)感興趣的小伙伴快快私信我們吧!


MyBatis架構(gòu)的優(yōu)點(diǎn)及缺點(diǎn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
嘉黎县| 即墨市| 自贡市| 巴林左旗| 永昌县| 阿克| 高要市| 太湖县| 泽普县| 高要市| 重庆市| 富阳市| 米脂县| 逊克县| 三亚市| 惠来县| 平谷区| 宝丰县| 泸定县| 甘谷县| 腾冲县| 顺义区| 大理市| 金塔县| 内江市| 无棣县| 桐庐县| 青海省| 哈巴河县| 抚松县| 会昌县| 南康市| 齐河县| 缙云县| 大丰市| 车致| 洛扎县| 综艺| 南宁市| 南汇区| 伽师县|