ORM的核心目的?
是讓我們不在關心數據庫,只關心我們對象、集合這所有面向對象的知識點
如何自己動手設計一個ORM框架?
一共包含兩個部分:
第一個,映射部分(提供可以讓用戶配置的 xml 文件)
第二個,框架核心部分(提供 API 供用戶使用)
第一部分
映射部分,這一部分就稱為ORM。負責對象與數據庫表之間的映射,這一部分又分為三個部分。
第1部分,實體部分(Object)
第2部分,數據庫部分(關系型數據庫 RelationShip)
第3部分,映射部分(Mapping)
上圖

那它們之間怎么去協作呢?
Mapping 部分去訪問 Object 部分和 RelationShip 部分,然后完成它們之間的映射

怎么映射?
通過Mapping操作,通過xml文件映射對應的字段和屬性。

第二部分
框架的核心部分,就是你接收到一個集合或者對象的操作
在經過你的核心類,這里面要做什么操作呢?
第一步,核心類根據你的映射規則去解析 XML 文件,匹配對象對應的表,對象屬性對應表的列。
第二步,核心類根據對象的操作(增刪改查)生成對應的 sql 語句。
第三步,核心類通過 ADO.NET 訪問數據庫,執行 Sql 語句。
第四步,返回結果。(如果是查詢操作的話,則通過核心類轉換成對應的對象或者集合再返回結果)
根據現在有的類,比如說你現在有 User 對象,而 User 對象對應一張 User 表,這時你發現是添加操作,就在核心類中構建 insert 語句,那么 insert 語句 insert 哪張表呢?根據對象和表之間映射關系取到對應的表,Values 哪些列的值呢?這時就從這個對象的屬性中去拿,這個屬性對應那個列,依次拿出,在通過核心類完成一條 sql 語句,通過核心類完成這么一個轉換。最終這條 sql 語句通過我們的框架去請求一個具體的數據庫完成操作。如何去請求?這里我們可以通過 ADO.NET 直接訪問數據庫,最后返回結果。
~~~~~~~~~~~~~~~~~~~~~~~~~~上圖~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一步,核心類要根據你的映射規則去解析 XML 文件,匹配對象對應的表,對象屬性對應表的列。

第二步,核心類根據對象的操作(增刪改查)生成對應的 sql 語句。
第三步,核心類通過 ADO.NET 訪問數據庫,執行 Sql 語句。
1
第四步,返回結果。(如果是查詢操作的話,則通過核心類轉換成對應的對象或者集合再返回結果)

新聞熱點
疑難解答