Spring Data JPA 與 MyBatis簡(jiǎn)單對(duì)比
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)
JPA默認(rèn)使用hibernate作為ORM實(shí)現(xiàn),所以,一般使用Spring Data JPA即會(huì)使用hibernate。我們?cè)倏纯磆ibernate的官方概念,Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它將POJO與數(shù)據(jù)庫(kù)表建立映射關(guān)系,是一個(gè)全自動(dòng)的orm框架,hibernate可以自動(dòng)生成SQL語(yǔ)句,自動(dòng)執(zhí)行,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。
面向?qū)ο罂紤]的是對(duì)象的整個(gè)生命周期包括在對(duì)象的創(chuàng)建、持久化、狀態(tài)的改變和行為等,對(duì)象的持久化只是對(duì)象的一種狀態(tài),而面向關(guān)系型數(shù)據(jù)庫(kù)的概念則更關(guān)注數(shù)據(jù)的高效存儲(chǔ)和讀??; 面向?qū)ο蟾鼜?qiáng)調(diào)對(duì)象狀態(tài)的封裝性,對(duì)象封裝自己的狀態(tài)(或數(shù)據(jù))不允許外部對(duì)象隨意修改,只暴露一些合法的行為方法供外部對(duì)象調(diào)用;而關(guān)系型數(shù)據(jù)庫(kù)則是開(kāi)放的,可以供用戶(hù)隨意讀取和修改關(guān)系,并可以和其他表任意的關(guān)聯(lián)(只要sql正確允許的情況下); 面向?qū)ο笤噲D為動(dòng)態(tài)的世界建模,他要描述的是世界的過(guò)程和規(guī)律,進(jìn)而適應(yīng)發(fā)展和變化,面向?qū)ο罂偸窃谧兓刑幚砀鞣N各樣的變化。而關(guān)系型模型為靜態(tài)世界建模,它通過(guò)數(shù)據(jù)快照記錄了世界在某一時(shí)候的狀態(tài),它是靜態(tài)的。
分析、抽象和歸納出系統(tǒng)中的業(yè)務(wù)概念,并梳理出各個(gè)業(yè)務(wù)概念之間的關(guān)系——?jiǎng)?chuàng)建概念模型 根據(jù)概念模型,進(jìn)一步細(xì)化設(shè)計(jì)系統(tǒng)中的對(duì)象類(lèi)以及類(lèi)的依賴(lài)關(guān)系——?jiǎng)?chuàng)建設(shè)計(jì)模型 將設(shè)計(jì)好的類(lèi)映射到數(shù)據(jù)庫(kù)的表和字段配置好 hibernate可以根據(jù)配置信息自動(dòng)生成數(shù)據(jù)庫(kù)表,這個(gè)時(shí)候也可以集中精力去梳理一下表關(guān)系,看看表結(jié)構(gòu)是否合理,并適當(dāng)調(diào)整一下類(lèi)和表的映射關(guān)系,重新生成表結(jié)構(gòu)
綜合整個(gè)系統(tǒng)分析出系統(tǒng)需要存儲(chǔ)的數(shù)據(jù)項(xiàng)目,并畫(huà)出E-R關(guān)系圖,設(shè)計(jì)表結(jié)構(gòu) 根據(jù)上一步設(shè)計(jì)的表結(jié)構(gòu),創(chuàng)建數(shù)據(jù)庫(kù)、表 編寫(xiě)MyBatis的SQL 映射文件、Pojos以及數(shù)據(jù)庫(kù)操作對(duì)應(yīng)的接口方法
作者 | 華華lucky
來(lái)源 | jianshu.com/p/3927c2b6acc0

評(píng)論
圖片
表情
