今天我想分享一下我自己的ORM框架,雖然談不是很好,但我個(gè)人認(rèn)為還是蠻好用的,跟大家分享交流一下。
首先說說我對(duì)現(xiàn)在主流的ORM框架的一些看法:
優(yōu)點(diǎn):
讓程序員不再關(guān)注數(shù)據(jù)庫細(xì)節(jié),專心在業(yè)務(wù)邏輯上,程序員可以不懂?dāng)?shù)據(jù)庫就可以開發(fā)系統(tǒng)。
讓數(shù)據(jù)庫遷移變的非常方便,如果系統(tǒng)需要更改使用的數(shù)據(jù)庫,直接改配制就好了,不要再管不同數(shù)據(jù)庫之間的語法差異。
省時(shí),可快速開發(fā),因?yàn)椴恍枰约簩憦?fù)雜的SQL語句,不需要封裝復(fù)雜的數(shù)據(jù)底層,這樣可以節(jié)省很多時(shí)間。
缺點(diǎn):
我覺得不懂?dāng)?shù)據(jù)庫的程序員不是好程序員,ORM不能幫你生成所有的業(yè)務(wù)語句,有些復(fù)雜的生成不了,還是需要寫SQL,例如復(fù)雜的報(bào)表。
配制過于繁瑣,出錯(cuò)后不好定位問題點(diǎn)在哪。
性能低,因?yàn)樗鼉?nèi)部是使用了大量反射,還有數(shù)據(jù)庫檢測(cè),造成性能必然低下。
需要額外的學(xué)習(xí)成本,雖然不需要學(xué)習(xí)數(shù)據(jù)庫,但是需要學(xué)習(xí)ORM語句。
容易引起不規(guī)范開發(fā),因?yàn)镺RM可以在任何地方寫ORM語句然后調(diào)用開發(fā),這樣對(duì)于初始程序員來說他們很可能在系統(tǒng)的任何地方亂丟ORM語句,這樣給維護(hù)帶來了很大的難度。
因?yàn)槲乙恢倍疾豢春眠@些ORM框架所以缺點(diǎn)寫多了點(diǎn),可能還有些優(yōu)點(diǎn)是我不知道的,路過的人要是知道可以給我留言,我再補(bǔ)上。
那現(xiàn)在來談一下我自己的ORM框架,之所以稱它為ORM框架是因?yàn)?,它也達(dá)到了上面ORM框架的幾個(gè)優(yōu)點(diǎn)。
首先我基于抽像數(shù)據(jù)操作層,寫了一套基于ADO.NET的抽像操作數(shù)據(jù)庫的方法DbHelper