1 回答

TA貢獻2012條經驗 獲得超12個贊
自己封裝沒什么問題,只是是否有足夠的資源與時間去做這件事。
現有的持久化框架主要功能點在于多 SQL 方言支持、多數據源配置、數據表映射(及實體字段變動與數據庫表字段變動的聯動處理)、緩存與自動化工具支持上。
如果業務只需要支持特定的 SQL 方言、少量甚至只有一個數據源、數據表映射的聯動要求不高、不是非常需要緩存加持,那么自己封裝并不是什么壞的選擇。至于自動化工具支持,IDE 一般會自帶一些,然后就是 SQL 拼接工具之類的東西了,只要你熟悉設計模式與目標 SQL 方言的語法,那么自己動手做也挺好的。
特別的,關于數據表映射聯動,舉個栗子:
@Entitypublic class Student extends BaseEntity { private String name; }
其中 BaseEntity
提供了基礎表字段,如 id
、createtime
、updatetime
之類的東西,現在業務需求在 Student
中增加/減少一個字段,要求你的框架能自動識別并在對應數據表增加/減少對應字段,其中減少字段一般是直接取消對數據庫表的響應字段映射即可。
然后一對多多對一之類的關聯關系如何建立,聯表查詢的 API 形式等等,都是需要考量的。
再舉個栗子,在 hibernate 中,允許通過 @Where
之類的注解來在對應字段 getter
觸發時才拉取數據并應用注解值進行篩選,這種功能點是否需要以及如何去做。
公司普遍還是在現有 ORM 基礎上二次封裝出如 mybatis-plus 一類的東西,當然技術實力以及資源充足的組或公司會選擇自行實現 ORM 中的部分東西。
添加回答
舉報