第31次文章:手寫SORM框架(一)

  • 2019 年 10 月 8 日
  • 筆記

在上周的末尾,我們介紹了ORM框架,將資料庫和Java程式中的數據類型進行關聯。這周我們進入SORM框架深入探究,最後手寫一個SORM框架。作者也是第一次學習,文章中有一些不足之處,請各位同學多多指教呀!


一、SORM框架基本思想

(1)我們希望設計一個可以實現對象和SQL自動映射的框架,但是整體用法和設計比Hiberbate簡單。砍掉不必要的功能。

(2)穿插使用設計模式。

二、基本實現的功能

-增加:將對象對應成sql語句,執行sql,插入資料庫中

-刪除:根據對象主鍵的值,生成sql並執行,從庫中刪除

-修改:根據對象需要修改的屬性的值,生成sql並執行

三、查詢

根據結果分類:

-多行多列:List< Javabean >

-一行多列:Javabean

-一行一列:普通對象object;數字number

四、核心架構

-Query介面:負責查詢(對外提供服務的核心類)

-QueryFactory類:負責根據配置資訊創建query對象

-TypeConvertor介面:負責類型轉換

-TableContext類:負責獲取管理資料庫所有表結構和類結構的關係,並可以根據表結構生成類結構

-DBManager類:根據配置資訊,維持連接對象的管理(增加連接池功能)

-工具類:

(1)JDBCUtils封裝常用JDBC操作;

(2)StringUtils封裝常用字元串操作;

(3)JavaFileUtils封裝java文件操作;

(4)ReflectUtils封裝常用反射操作;

五、核心bean,封裝相關數據

-ColumnInfo:封裝表中一個欄位的資訊(欄位類型、欄位名、鍵類型)

-Configuration:封裝配置文件資訊

-TableInfo:封裝一張表的資訊

六、針對SORM框架的說明

-核心思想:使用簡單、性能高、極易上手!

-配置文件:目前使用資源文件、後期項目複雜後可以增加XML文件配置和註解

-類名由表名生成,只有首字母大寫有區別,其他無區別

-Java對象的屬性由表中欄位生成,完全對應

-目前,只支援表中只有一個主鍵,聯合主鍵不支援


手寫整個SORM框架對於目前的作者而言是一個龐大的工程