Model(モデル)を使ってデータベースアクセスする[Scala編] (1/7)
作成:2013-02-10 09:59
更新:2013-02-10 09:59
更新:2013-02-10 09:59
■Scalaでのデータベース利用について
MVCの残る1つ、「Model(モデル)」は、データベースアクセスに関する処理を担当する部分です。データベースアクセスは、どんなデータベースを利用するのかによって処理の仕方が変わったりするため非常にやっかいな部分ですね。こうしたデータベース間の違いなどを吸収し、同じように処理できるようにするための仕組みが必要となります。
そこでModelとなるわけですが……、Play Frameworkで、Scalaを使ったモデルを作成する場合、一般的なMVCのモデル設計とはちょっと違ってくる点に注意してください。
例えば一般的なMVCフレームワークでは(あるいはPlayでJavaを利用する場合には)、モデル機能を提供するためのクラスがあらかじめ用意されており、これを継承して作っていきます。が、PlayでScalaによるモデルの作成を行う場合には、こうした作り方にはなりません。
ごく一般的なクラスを用意し、これにデータベースアクセスの処理を記述する……という、まぁ正直いって「わざわざモデルという形で切り分けなくてもいいんじゃないの?」という感じの作り方になります。
一般的なMVCフレームワークでは、モデルのベースとなるクラス自身にデータベースアクセスの基本的な処理が実装済みになっています。が、Scalaでモデルを作成する場合、こうした基本的なデータベースアクセスの部分から自分で書いていくことになります。なぜそんな面倒臭いことを?と想いますが、これは「Scalaにおけるデータベースアクセスにはいくつものやり方がある」ためでしょう。
Scalaは、Javaのクラスをそのまま利用できますから、JDBCをそのまま利用することもできます。またその他にもデータベースアクセスに関するライブラリなどはいろいろと用意されています。このため、「自由に選んで使って」ということで、標準的なModelクラスは用意していないのかもしれません。
ここでは、「Anorm」というライブラリを利用することにします。これは、Play 2.1には標準で組み込まれており、別途インストールなどをする必要はありません。
そこでModelとなるわけですが……、Play Frameworkで、Scalaを使ったモデルを作成する場合、一般的なMVCのモデル設計とはちょっと違ってくる点に注意してください。
例えば一般的なMVCフレームワークでは(あるいはPlayでJavaを利用する場合には)、モデル機能を提供するためのクラスがあらかじめ用意されており、これを継承して作っていきます。が、PlayでScalaによるモデルの作成を行う場合には、こうした作り方にはなりません。
ごく一般的なクラスを用意し、これにデータベースアクセスの処理を記述する……という、まぁ正直いって「わざわざモデルという形で切り分けなくてもいいんじゃないの?」という感じの作り方になります。
一般的なMVCフレームワークでは、モデルのベースとなるクラス自身にデータベースアクセスの基本的な処理が実装済みになっています。が、Scalaでモデルを作成する場合、こうした基本的なデータベースアクセスの部分から自分で書いていくことになります。なぜそんな面倒臭いことを?と想いますが、これは「Scalaにおけるデータベースアクセスにはいくつものやり方がある」ためでしょう。
Scalaは、Javaのクラスをそのまま利用できますから、JDBCをそのまま利用することもできます。またその他にもデータベースアクセスに関するライブラリなどはいろいろと用意されています。このため、「自由に選んで使って」ということで、標準的なModelクラスは用意していないのかもしれません。
ここでは、「Anorm」というライブラリを利用することにします。これは、Play 2.1には標準で組み込まれており、別途インストールなどをする必要はありません。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ