【mybatis】記錄優(yōu)缺點(diǎn)說明-創(chuàng)新互聯(lián)

原理

在這里插入圖片描述

站在用戶的角度思考問題,與客戶深入溝通,找到翼城網(wǎng)站設(shè)計與翼城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋翼城地區(qū)。
  1. 讀取mybatis的mybatis-config.xml配置文件
  2. 加載映射文件
  3. 構(gòu)建SQLSessionFactory會話工廠(工廠模式)
  4. 構(gòu)建SqlSession會話對象(工廠模式就是創(chuàng)建對象)
  5. Executor執(zhí)行器根據(jù)SqlSession傳遞的參數(shù)動態(tài)地生成需要執(zhí)行的SQL語句操作數(shù)據(jù)庫
優(yōu)點(diǎn)
  1. 簡單容易上手基于sql編程,與jdbc相比減少了一半以上的代碼量,消除了JDBC大量冗余的代碼,不需要手動開關(guān)連接;
  2. 由于mybatis使用jdbc來連接數(shù)據(jù)庫,所有只要jdbc支持的數(shù)據(jù)庫mybatis都支持,而jdbc提供了可拓展性,所有只要數(shù)據(jù)庫有針對java的jar包就可以與mybatis兼容。很好的與各個數(shù)據(jù)庫兼容,開發(fā)人員不需要考慮數(shù)據(jù)庫的差異性;
  3. 提供很多第三方插件,能夠與spirng很好的集成;
  4. Mybatis相當(dāng)靈活,不會對應(yīng)用程序或者數(shù)據(jù)庫的現(xiàn)有設(shè)計強(qiáng)加任何影響,SQL寫在XML里,從程序代碼中徹底分離,解除sql與程序代碼的耦合,便于統(tǒng)一管理和優(yōu)化并可重用;
  5. 提供XML標(biāo)簽,支持編寫動態(tài)SQL語句;提供映射標(biāo)簽,支持對象與數(shù)據(jù)庫的ORM字段關(guān)系映射;提供對象關(guān)系映射標(biāo)簽,支持對象關(guān)系組建維護(hù)。
缺點(diǎn)

SQL語句編寫的工作量較大,特別是在字段多和關(guān)系表多的時候,體現(xiàn)的淋漓盡致,對開發(fā)人員編寫SQL語句的功底有一定要求;SQL語句依賴于數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)庫一致性差,不能隨意更換數(shù)據(jù)庫。(采用分?jǐn)?shù)據(jù)庫寫)

其他

Mybatis通過SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory生成Session,最后由Session來開啟執(zhí)行事務(wù)和SQL語句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的,支持JDBC和JTA事務(wù)處理。Mybatis是半自動的,它僅有基本的字段映射,對象數(shù)據(jù)以及對象實(shí)際關(guān)系任然需要通過手寫sql來實(shí)現(xiàn)和管理,由于mybatis需要手寫sql,因此與數(shù)據(jù)庫的耦合性直接取決于程序員寫的sql的方法,如果sql不具通用性而用例很多某數(shù)據(jù)庫特性的sql語句,移植性也會隨之降低很多,成本很高。但是,由于mybatis的sql語句都是寫在xml里,這樣優(yōu)化起來方筆,靈活度較高。這里再說一下mybatis緩存機(jī)制,Mybatis的二級緩存配置都是在每個具體的表-對象映射中進(jìn)行詳細(xì)配置,這樣針對不同的表可以自動以不同的緩存機(jī)制,并且Mybatis可以在命名空間中共享相同的緩存配置和實(shí)例,通過cache-ref來實(shí)現(xiàn)。

補(bǔ)充

mybatis中#{}${}的區(qū)別:
#{}是預(yù)編譯處理,會將sql中的#{}替換為問號【?】,調(diào)用PreparedStatement的set方法來賦值
${}是字符串替換,就是把${}替換成變量的值。

使用#{}可以有效的防止sql注入,提供系統(tǒng)安全性。

緩存 一級緩存

基于PerpetualCache的 HashMap 本地緩存,它的聲明周期是和SQLSession一致的,有多個SQLSession或者分布式的環(huán)境中數(shù)據(jù)庫操作,可能會出現(xiàn)臟數(shù)據(jù)。當(dāng)Session flush或 close 之后,該 Session 中的所有 Cache 就將清空,默認(rèn)一級緩存是開啟的。

二級緩存

基于PerpetualCache的 HashMap 本地緩存,不同在于其存儲作用域?yàn)?Mapper 級別的,如果多個SQLSession之間需要共享緩存,則需要使用到二級緩存,并且二級緩存可自定義存儲源,如 Ehcache。默認(rèn)不打開二級緩存,要開啟二級緩存,使用二級緩存屬性類需要實(shí)現(xiàn) Serializable 序列化接口(可用來保存對象的狀態(tài))。

溫馨提醒:如果有描述不符,可以評論說明,攜手總結(jié)歸納

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁題目:【mybatis】記錄優(yōu)缺點(diǎn)說明-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://muchs.cn/article16/dphodg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、定制網(wǎng)站外貿(mào)建站、網(wǎng)站營銷、電子商務(wù)、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)