應用服務(wù)四層結(jié)構(gòu)
- Facade Layer
- ORM
- DB Engine
- Connection Manager
- Database Manager
數(shù)據(jù)訪問層的責任
數(shù)據(jù)訪問層需解決數(shù)據(jù)如何存取的問題
- 數(shù)據(jù)源類型,SQL Server, MySQL
- 持久化模型等,如City對象如何保存到數(shù)據(jù)庫中,讀寫分離,分片
業(yè)務(wù)邏輯層不需要實現(xiàn)數(shù)據(jù)如何存取,所有的數(shù)據(jù)存取操作都在數(shù)據(jù)訪問層完成。
DAL Framework是一個數(shù)據(jù)訪問層框架,用于搭建基于多臺關(guān)系數(shù)據(jù)庫系統(tǒng) 的數(shù)據(jù)訪問層
DAL分層的好處
- 高內(nèi)聚 低耦合
- 提高可擴展性和靈活性
- 數(shù)據(jù)存儲策略高度透明,降低開發(fā)難度
- 易于重用
Why not MyBatis,Hibernate,EF
- 不支持多數(shù)據(jù)庫如讀寫分離,水平分片等
- 比較重量級
- 不易維護,風險難控
多數(shù)據(jù)庫
- 一個系統(tǒng)設(shè)計了太多的表 ------ 垂直分片
- 單個表存儲了太多的內(nèi)容 ------ 水平分片
- 讀取數(shù)據(jù)負荷太高 ------ 讀寫分離
- 高一致性備份 ------ 雙寫同步