大话细说ORM -----(转)
什么是ORM?
????? ORM,即對象關系映射(Object Relational Mapping)表示一種技術,用來把(對象模型)表示的對象映射到基于SQL的(關系模型)數據結構中去。
????? 說得通俗點,就是在對象的屬性與關系表的字段之間建立一套規則,來實現數據的交互。我們只需使用對象提供給我們的接口來完成數據操作,而無需關心數據到底是如何被查詢,被插入的,省去了我們寫sql語句的麻煩。一般一個關系表對應兩個類,即實體類和操作類。
如何實現ORM?
???? ORM,只是一個概念,不是一種實現。我們完全可以在這個概念上實現自己的ORM框架。而實現這個框架的核心是反射(reflect)技術。通過它,我們可以根據對象屬性和表字段名的關系,獲取和設置對象的字段值,或者構造sql語句進行表操作。
???? 很多語言中,都有自己的比較成熟的ORM框架,拿來即可。Java中的Hibernate,C#中的NHibernate,C++中的ODB,Android中的ormlite、db4o。當然,它們各自的封裝程度不同,為了重用和方便調用,有的(如odb,hibernate)需要你自己配置和進行進一步的封裝,有的(ormlite、db4o)則封裝得很好,你只需建立一個對象,框架會自動為你生成關系表和操作類,很方便。
???? 不論是別人的還是自己的框架,為了保持接口的統一,降低耦合性,我們通常對數據操作類做如下接口約定,
???? public class TableName{//使用表名稱作為操作類名稱
????????? ? /*item=Tb前綴+TableName,即實體類*/
??????????? item GetById(id),?????????????????????? //按id獲取表中的一行記錄
??????????? List<item> GetByClause(clause),//按條件子句獲取表中的記錄
??????????? List<item> GetAll(),?????????????????? //獲取表中的所有記錄
??????????? List<item> GetByPage(start,count,clause,sort,dir),//按頁獲取
??????????? Insert(item),?? //插入
??????????? Update(item),//更新
??????????? Delete(id)???? //刪除
?????? };//end of class
以上接口僅供參考,讀者可以根據自己的業務場景建立自己的約束,這樣可以方便的更換Orm框架,并為代碼生成器的使用作鋪墊。
批量ORM
重復勞動是程序員的天敵,要為幾十個表建立映射關系,是很痛苦的。是時候推出,我們的利器,代碼生成器了。代碼生成器可以做得很復雜,多數據庫,多語言,組件、模板化。也可以很簡單,VS里的T4引擎就是一個簡單的代碼生成器。有了它,我們就可以很容易為上百個表創建配置、映射、操作對象。如果操作邏輯或者表明發生變動,Once agin即可。當然,代碼生成器的作用不僅于此,任何基于數據的批處理問題,都可以交給它來完成。
轉載于:https://www.cnblogs.com/shao-shao/articles/3543453.html
總結
以上是生活随笔為你收集整理的大话细说ORM -----(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 工程造价步骤_史上最全造价工作流程,全了
 - 下一篇: xposed 修改手机定位