亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

自己封裝JDBC VS 持久化框架

自己封裝JDBC VS 持久化框架

梵蒂岡之花 2019-01-05 18:28:58
從jdbc到hibernate,從hibernate到mybatis,一直是麻木地跟著潮流,為了工作使用而使用我現在有個想法,在JDBC的基礎上進行封裝使用jdbc+redis來進行開發,這樣我自己可以按自己的想法來蹂躪jdbc不知正式環境下,用這樣的方式進行長期開發是否可行,是否存在問題?大公司持久化框架是自己封裝還是使用現成的持久化框架?
查看完整描述

1 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

自己封裝沒什么問題,只是是否有足夠的資源與時間去做這件事。

現有的持久化框架主要功能點在于多 SQL 方言支持、多數據源配置、數據表映射(及實體字段變動與數據庫表字段變動的聯動處理)、緩存與自動化工具支持上。

如果業務只需要支持特定的 SQL 方言、少量甚至只有一個數據源、數據表映射的聯動要求不高、不是非常需要緩存加持,那么自己封裝并不是什么壞的選擇。至于自動化工具支持,IDE 一般會自帶一些,然后就是 SQL 拼接工具之類的東西了,只要你熟悉設計模式與目標 SQL 方言的語法,那么自己動手做也挺好的。

特別的,關于數據表映射聯動,舉個栗子:

@Entitypublic class Student extends BaseEntity {    
    private String name;
       
}

其中 BaseEntity 提供了基礎表字段,如 idcreatetime、updatetime 之類的東西,現在業務需求在 Student 中增加/減少一個字段,要求你的框架能自動識別并在對應數據表增加/減少對應字段,其中減少字段一般是直接取消對數據庫表的響應字段映射即可。

然后一對多多對一之類的關聯關系如何建立,聯表查詢的 API 形式等等,都是需要考量的。

再舉個栗子,在 hibernate 中,允許通過 @Where 之類的注解來在對應字段 getter 觸發時才拉取數據并應用注解值進行篩選,這種功能點是否需要以及如何去做。

公司普遍還是在現有 ORM 基礎上二次封裝出如 mybatis-plus 一類的東西,當然技術實力以及資源充足的組或公司會選擇自行實現 ORM 中的部分東西。


查看完整回答
反對 回復 2019-01-05
  • 1 回答
  • 0 關注
  • 590 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號