Grails Quick Start(2)
気を取り直して、つづきです。
Configure a Data Source
アプリケーションが使うデータベース接続先の定義は、以下のようにクラスとして定義するようですね。
デフォルトでは、HSQLDBを使う設定になっています。
”アプリケーションフォルダ/grails-app/conf”にある、ApplicationDataSource.groovyを開くと、
class ApplicationDataSource { @Property String url = "jdbc:hsqldb:mem:testDB" @Property String driverClassName = "org.hsqldb.jdbcDriver" @Property String username = "sa" @Property String password = "" }
@Property というのは、Groovyの記法で、クラスの属性とその属性用のsetter/getterメソッドが定義されるようです。一瞬、Java5のアノテーションかと思いましたが、JDK1.4でも動作するみたいです。
今のところは、このままにして進めるとしましょう。
Create a Domain Class
Domain Classというのは、アプリケーションの領域に存在するビジネスオブジェクト、、みたいな感じ?
以下のように、コマンドで雛形が作成されるようだけど、デフォルトではDomain Classのフィールドはデータベースにマップされるそうです。
作ってみましょう。
アプリケーションフォルダに移動してコマンドを実行ぉー。
> cd firstapp
> grails create-domain-class
例によって、Domain Classの名前を聞いてくるので、チュートリアルにあるとおり、”Book”とします。
> create-domain-class:
[input] Enter domain class name:
Book
[groovy] statements executed successfully
[copy] Copying 1 file to ...
[echo] Domain class created: grails-app/domain/Book.groovyinternal-create-test-suite:
[groovy] statements executed successfully
[copy] Copying 1 file to ...
[echo] Created test suite: grails-tests/BookTests.groovy
モデルのソースらしきファイルと、そのテストモジュールらしいのができているようです。
できたgroovyファイルは、こんな風になっています。
firstapp\grails-app\domain\Book.groovy
class Book { @Property Long id @Property Long version String toString() { "${this.class.name} : $id" } }
id と version というのがデフォルトで出来るようですね。
id はBookエンティティのユニークIDなのかな?
versionは分からん。。serialVer ではないですよね。。おいおい調べるとしましょう。
例に従って、Bookの属性を追加しておきましょう。
class Book { @Property Long id @Property Long version @Property String title @Property String author String toString() { "${this.class.name} : $id" } }
ね、眠い。。今日はここまで。