數據操作的幾個名詞即model、dal、dao、orm和ar 解釋


     第一,model

      首先,model是mvc中的m,也就是模型。它指的是讀取數據和改變數據的操作,它是與業務邏輯息息相關的操作。比如一個簡單的功能"把學生添加到班組",就可以理解為一個數據處理過程,它向外暴露一個接口,外面的數據不需要知道這個接口具體是怎么實現的,也不需要知道它在各個數據庫下的不同表現,我們只需要知道模型層暴露出來的接口即可。

     第二,dal和dao 

      如果我們在模型里面直接寫sql代碼,那么當業務邏輯改變的時候,我們就需要開發者重寫sql語句,這樣,我們可以把這一層抽出來,也就是所謂的數據訪問層,也就是通常我們所說的dal。其中dal是database   access  layer的簡寫,也就是"數據庫訪問層",它是一個概念,也可以理解為一個方案,它沒有指定具體的實現,它是這一層的統稱。

      這樣設計的好處就是我們的業務邏輯不用去調用具體的數據訪問層的實現,也就是說,不管我們的業務邏輯怎么變,我們的接口是不變的。使用dal的優勢主要有:①開發人員可以只關注某個結構中某一層的實現。②我們可以很容易用新的實現來替換原有層次的實現。③降低層與層之間的耦合性。④有利於標准化。⑤有利於各層邏輯的復用。

       而dao則是dal的一種實現方式,它的思想是我們把對數據源的訪問操作封裝在一個公共的api中,也就是說,我們建立一個接口,接口中定義了此應用程序中將會用到的所有事務方法。而dao則是database  access   object的簡寫,也就是"數據庫訪問對象",通常可以理解為用面向對象的方式去訪問數據庫。

      我們在需要修改業務邏輯的時候,我們直接調用這些dao類,它包括了如何訪問數據庫和數據的增刪改查的很多代碼,它們可以返回數據,而且我們無需在業務邏輯層中寫這些代碼。

      第三,orm和ar

      首先說的是,orm也是一種對數據庫訪問的封裝,但是orm和dao不一樣的而是,它強調的是系統應該層次分明,它就像一種工具一樣,而且有着非常成熟的產品。它的好處就是在於我們可以將我們程序中的數據對象自動地轉化為關系數據庫中對應的表和列,數據對象間的引用關系也可以通過相應的工具來轉化為表之間的連接操作。

     通過orm,我們幾乎可以不寫任何的sql語句,創建一張表,聲明一個類,然后我們就只需要和這個類的實例進行交互即可,至於這個對象里的數據怎么操作,我們通常不用關心,這一點框架一般會幫我們搞定的。

      而ar則是一種orm模式,它是伴隨着ror火起來的,它負責把持久化的代碼集成到數據對象中,也就是說,這個數據對象也知道如何把自己持久化到數據庫中。它和傳統的orm有區別的地方在於,傳統的orm會把數據對象和負責持久化的代碼分開,數據對象只是一個單純的包含數據的結構體,在模型層和orm層之間傳遞。

      在ar中,模型層本身就繼承了orm的功能,它們即代表實體,又包含業務邏輯,也是數據對象,並且負責把自己存儲到數據庫中,當然,對於持久化這一塊的代碼應該在父類中有對應的實現。

       也就是說,orm模型中定義了表映射到類,記錄映射到對象,字段映射到屬性。配合命名規則和配置慣例,我們就能夠很大程度的實現模型的操作,而且簡單易懂。但是ar的主要思想還封裝了部分業務邏輯,而且它自己負責把自己持久化,也就是說,通常ar更加適用於單表操作。

感謝!作者。🐮🖊
---------------------
作者:辛星
來源:CSDN
原文:https://blog.csdn.net/xinguimeng/article/details/48027019
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM