今天我想分享一下我自己的ORM框架,雖然談不是很好,但我個(gè)人認(rèn)為還是蠻好用的,跟大家分享交流一下。
首先說(shuō)說(shuō)我對(duì)現(xiàn)在主流的ORM框架的一些看法:
優(yōu)點(diǎn):
讓程序員不再關(guān)注數(shù)據(jù)庫(kù)細(xì)節(jié),專心在業(yè)務(wù)邏輯上,程序員可以不懂?dāng)?shù)據(jù)庫(kù)就可以開發(fā)系統(tǒng)。
讓數(shù)據(jù)庫(kù)遷移變的非常方便,如果系統(tǒng)需要更改使用的數(shù)據(jù)庫(kù),直接改配制就好了,不要再管不同數(shù)據(jù)庫(kù)之間的語(yǔ)法差異。
省時(shí),可快速開發(fā),因?yàn)椴恍枰约簩憦?fù)雜的SQL語(yǔ)句,不需要封裝復(fù)雜的數(shù)據(jù)底層,這樣可以節(jié)省很多時(shí)間。
缺點(diǎn):
我覺(jué)得不懂?dāng)?shù)據(jù)庫(kù)的程序員不是好程序員,ORM不能幫你生成所有的業(yè)務(wù)語(yǔ)句,有些復(fù)雜的生成不了,還是需要寫SQL,例如復(fù)雜的報(bào)表。
配制過(guò)于繁瑣,出錯(cuò)后不好定位問(wèn)題點(diǎn)在哪。
性能低,因?yàn)樗鼉?nèi)部是使用了大量反射,還有數(shù)據(jù)庫(kù)檢測(cè),造成性能必然低下。
需要額外的學(xué)習(xí)成本,雖然不需要學(xué)習(xí)數(shù)據(jù)庫(kù),但是需要學(xué)習(xí)ORM語(yǔ)句。
容易引起不規(guī)范開發(fā),因?yàn)镺RM可以在任何地方寫ORM語(yǔ)句然后調(diào)用開發(fā),這樣對(duì)于初始程序員來(lái)說(shuō)他們很可能在系統(tǒng)的任何地方亂丟ORM語(yǔ)句,這樣給維護(hù)帶來(lái)了很大的難度。
因?yàn)槲乙恢倍疾豢春眠@些ORM框架所以缺點(diǎn)寫多了點(diǎn),可能還有些優(yōu)點(diǎn)是我不知道的,路過(guò)的人要是知道可以給我留言,我再補(bǔ)上。
那現(xiàn)在來(lái)談一下我自己的ORM框架,之所以稱它為ORM框架是因?yàn)?,它也達(dá)到了上面ORM框架的幾個(gè)優(yōu)點(diǎn)。
首先我基于抽像數(shù)據(jù)操作層,寫了一套基于ADO.NET的抽像操作數(shù)據(jù)庫(kù)的方法DbHelper
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26
