torutkのブログ

ソフトウェア・エンジニアのブログ

「Grailsをマスターする:GROM:おかしな名前の真面目な技術」を読みながら動かしてみる(Part 2)

id:torutk:20090714:p1の続きです。残っていた「GrailsのORM DSL」(レガシーデータベースの使用)と「DataSource.groovy」を読みながら動かしてみます。

GrailsのORM DSL

ドメインクラスにstatic mapping = {...} と記述して、ドメインクラスがマッピングするデータベースのテーブル名、カラム名を指定するものです。ただし、実際に動かすには記事は説明不足なので(例えばversion指定等)、後の記事でレガシーデータベースの解説があるまで待った方がよいでしょう。

DataSource.groovy

grails-app/conf/DataSource.groovyに、使用するデータベースの設定が書かれています。デフォルトでは内蔵のHSQLDBですが、これを記事ではDB2MySQLの指定例を紹介しています。
ここでは、MySQLに接続して動かしてみました。

MySQLの初期設定

Linux(CentOS 5)には、MySQL 5.0.45が入っているので、これを動かして接続します。

MySQLのインストールと設定

mysql-serverパッケージが未インストールであればインストールします。

# yum install mysql-server

次にMySQLの設定ファイルに言語設定を追記します。

  • /etc/my.cnf
[mysqld]
default-character-set = utf8
[client]
default-character-set = utf8
||< 
この設定をしないと、作成するデータベースがすべて"latin1"となり、日本語を入れると文字化けを誘発します。

***MySQLの起動方法(Linux編)
MySQLはサービス化されているので、以下のように実行可能です。
>||
# service mysqld start
MySQL を起動中:                     [  OK  ]
#
データベースとユーザの作成

データベースtripを作成します。
同一マシンおよびリモートマシンからtripデータベースにアクセス可能なユーザgrailsを作成します。

# mysql -u root
mysql> CREATE DATABASE trip;
mysql> GRANT ALL ON trip.* TO grails@localhost IDENTIFIED BY 'server';
mysql> GRANT ALL ON trip.* TO grails@'%' IDENTIFIED BY 'server';
mysql>
grails-app/conf/DataSource.groovyの変更
dataSource {
    driverClassName = "com.mysql.jdbc.Driver"
    username = "grails"
    password = "server"
}
    : (中略)
environment {
    development {
        dataSource {
            url = "jdbc:mysql://myhost:3306/trip"
        }
    }
    : (後略)
MySQL JDBCドライバのJARファイルを配置

trip-planner/libの下に、MySQL JDBCコネクタを置きます。

mysql-connector-java-5.1.7-bin.jar