【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という考え方がありますが、ここでは触れまっせん。

 

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

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)