ドメインクラス(Modelクラス)を作ろう! (3/5)
作成:2013-10-26 09:07
更新:2013-10-26 09:07
更新:2013-10-26 09:07
■SampleDataクラスのコードを書こう
では、生成されたSampleData.groovyを開いてみましょう。ここには以下のようなコードが書かれています。
・Javaライクなメソッド
このconstraintsは、データ作成時のバリデーションなどの情報を記述しておくものです。このあたりはバリデーションについて理解しないとわかりにくいので、当面は「そういうのがある」という程度に理解しておけばいいでしょう。
このドメインクラスは、データベースでいえば「テーブルの定義」となるものであり、同時に1つ1つのレコードとして扱われるものでもあります。このクラスに、保管する値の情報をフィールドとして用意しておけば、それを元にデータベース側でテーブルが用意されます。またインスタンスを作って保存することで、そのテーブルにデータが保管されるようになるわけです。
では、SampleDataに追記をしましょう。下のリスト欄に完成リストを挙げておきます。3つのフィールドを追加しておきました。ここでは、以下のような項目をドメインクラスに保管するようにしてあります。
String name――名前の情報。これは必須項目にしておきます。
String mail――メールアドレスの情報。
int age――年齢の情報。String以外の型の値の例として用意しておきました。
また、この他にconstraintsに以下の一文を追加してあります。これにより、nameフィールドで未入力を禁止し、必ず入力するように設定しておきます(constraints関係は改めて触れる予定なので、ここでは「そう書いておけば必須項目になる」とだけ覚えておいてください)。
SampleData.groovy何のクラスも継承していない、POJOな「SampleData」クラスの定義が用意されています。ドメインクラスは、このようなシンプルなクラスです。ただし、中にconstraintsというstaticなメソッドだけが用意されています。Grailsのメソッドは、Javaライクな書き方もできますし、そうでない書き方もできます。Javaライクに書くならこんな感じになりますね。
package gralisapp
class SampleData {
static constraints = {
}
}
・Javaライクなメソッド
static constraints() {……}Javaに慣れているとこっちのほうが感覚的にわかりやすいでしょうが、どちらの書き方にも慣れておいたほうがいいでしょう。
このconstraintsは、データ作成時のバリデーションなどの情報を記述しておくものです。このあたりはバリデーションについて理解しないとわかりにくいので、当面は「そういうのがある」という程度に理解しておけばいいでしょう。
このドメインクラスは、データベースでいえば「テーブルの定義」となるものであり、同時に1つ1つのレコードとして扱われるものでもあります。このクラスに、保管する値の情報をフィールドとして用意しておけば、それを元にデータベース側でテーブルが用意されます。またインスタンスを作って保存することで、そのテーブルにデータが保管されるようになるわけです。
では、SampleDataに追記をしましょう。下のリスト欄に完成リストを挙げておきます。3つのフィールドを追加しておきました。ここでは、以下のような項目をドメインクラスに保管するようにしてあります。
String name――名前の情報。これは必須項目にしておきます。
String mail――メールアドレスの情報。
int age――年齢の情報。String以外の型の値の例として用意しておきました。
また、この他にconstraintsに以下の一文を追加してあります。これにより、nameフィールドで未入力を禁止し、必ず入力するように設定しておきます(constraints関係は改めて触れる予定なので、ここでは「そう書いておけば必須項目になる」とだけ覚えておいてください)。
name(blank:false)こんな具合に「保管したい値をフィールドとして用意する」ということだけしておけば、ドメインクラスはとりあえず完成です。非常に単純ですね!
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
package gralisapp class SampleData { String name; String mail; int age; static constraints = { name(blank:false) } }
※関連コンテンツ