Grails > MySQLの利用

更新日 2014-12-07
広告
GrailsでMySQLを利用するとき、基本的には設定は不要です。

ストレージエンジンを指定

GrailsでMySQLのストレージエンジンを選びたければ、DataSource.groovyでdialectを設定します。 例えば、以下のように設定するとInnoDBを使います。
  dialect = org.hibernate.dialect.MySQL5InnoDBDialect

charsetの指定

Mac OSで、GrailsからMySQLを使うと、Grailsが自動的に作るデータベースのcharsetがlatin1になります。 latin1だと日本語を扱えません。

これを解決するためには、Dialectを自作する必要があります。 src/groovy/ 以下に、自作Dialectを用意します。以下はその例です。

package some.test

import org.hibernate.dialect.MySQL5InnoDBDialect

class MySQL5InnoDBUTF8Dialect extends MySQL5InnoDBDialect {

  @Override
  String getTableTypeString() {
    return super.getTableTypeString() + " DEFAULT CHARSET=utf8"
  }

}
Grailsを起動すれば、自動的にコンパイルされます。 DataSource.groovyで以下のように設定しておきましょう。
  dialect = some.test.MySQL5InnoDBUTF8Dialect
ちなみに、my.cnfでutf8を使うように設定したり、DataSource.groovyで以下のようにurlを設定する方法も試しましたが、これらは効果ありませんでした。
  url = "jdbc:mysql://localhost/testdb?useUnicode=yes&characterEncoding=UTF-8"
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system