在寫業務代碼時,完成單一功能就能夠,在代碼中使用 PDO對象和MySQL鏈接類,用原生的mysql語句訪問。php
在框架中,面向對象和設計模式的思想才更能體現。
如下是TP5中數據庫訪問的中間層架構。
html
其中
一、Db:數據庫操做的入口對象同時肩負着鏈接數據庫的做用,具體來講在Db內部實例化了一個collection對象,經過這個對象實現數據庫的鏈接;對數據的操做也都是經過Db對象來完成。(工廠模式的設計思想)mysql
二、Collection:經過php的pdo實現數據庫的鏈接;處於一種待命的狀態,惰性的,具體說就是在執行sql語句的時候進行鏈接這樣能夠節約服務器的資源。
sql
三、Query:是對數據庫常見操做CURD的封裝,支持鏈式操做,所以開發者能夠不用關心細節,支持不一樣類型數據庫的查詢;(面向對象的封裝思想,隱藏細節和差別,讓開發者調用更加方便)數據庫
四、Builder:將query封裝的(不一樣類型)查詢語句翻譯成原生的sql語句,而後返回給collection,而後進行鏈接、查詢,能夠具體處理不一樣數據庫查詢的差別性,使得開發者能夠不考慮具體的實現方式;設計模式
五、Drivers:提供不一樣類型數據庫的鏈接器的類,開發者不須要關心具體的實現細節。服務器
數據庫訪問中間層的目的:
一、簡化在查詢操做數據庫過程當中的sql語句的編寫;
二、開發者不須要關心具體的實現形式,實現進行數據庫的訪問。架構