第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框架對於目前的作者而言是一個龐大的工程
