【Web】MVCとDAO

ぜひシェアを!

先日「DAO」という単語を初めて聞きました。

MVCはModel、View、Controllerだということは分かっているのですが、

ModelとDAOの違いがいまいち分からないのでまとめてみます。

自分が復習できればいい程度のメモです。

まずMVCのV、Viewから

Viewは私たちが目にするUI部分。

使う言語はHTMLやCSS、Javascript(jQuery)だと思っています…

合ってますよね?


次はController

ModelとViewの間、Modelで取得したデータをViewに渡すための通訳だと思っています。

データを加工したり、判定で処理を分けたり。

一番のメインだと思います。

ラストModel

Databaseからデータを取得するためのSQLを主に記述する部分…ですよね?

上で書いた通りDAOがいまいち分からずModelとごちゃごちゃになっています。

Modelで取得したデータをControllerに…ですね。

以下、例

まずViewの用意

1と2とを選べるラジオボタンと送信ボタンのformを用意。

1を選んで送信ボタンを押すと次のページで「あなたが選んだのは1で、正解です。」、

2を選んで送信ボタンを押すと次のページで「あなたが選んだのは2で、不正解です。」

と表示したい。

DBの中は

———–

| 1 | 正解    |

| 2 | 不正解 |

———–

みたいなデータを用意。

次にModelの用意

View→Controllerと受け渡される1or2の値でDBから正解or不正解を取得します。

select 2カラム目 form テーブル名 where 1カラム目 = 受け渡されてきた1or2

を実行。

それをControllerに渡してあげる。

次にController

Viewから来る1or2の値をModelに渡すため、Modelを呼び出してあげます。

SQL実行してくれるModel名(Viewから来る値)みたいな。

実行すると正解or不正解がModelから帰ってきます。

それをViewに渡してあげます。

最後にもう一つViewを用意

Controllerから正解or不正解が来るので

「あなたが選んだのは1で、正解です。」、

「あなたが選んだのは2で、不正解です。」

を表示してあげます。

文だらけでわかりずらいっすね、すみません。

自分が分かれば今はいいんです。

そんで本題、ModelとDAOの違い。

DAOはDataAccessObjectの略。

調べてみたらModelと一緒なんじゃ…?と思い、めっちゃもっと調べてみました。

結論から言うとDAOはModelの一部です。

ModelをDBとのアクセスに使う場合、DAOという考え方で記述します。

他にもModelの中にserviceという考え方がありますが、ここでは触れまっせん。

解決解決、ありがとうございました。

応援よろしくお願いします!!

ブログランキング・にほんブログ村へ
にほんブログ村

人気ブログランキング

ぜひシェアを!

Twitterもよろしくお願いします。広告をクリックしてくれたら泣いて喜びます。