エンコーディングを使用してデータベースを作成することもできます。
phpMyAdmin
を使用するだけです データベース/テーブル作成用。
UTF8 を使用して接続するために、休止状態設定の URL で指定する URL パラメーターがいくつかあります。
<!-- Database Settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- for performance reasons changed to MyISAM from org.hibernate.dialect.MySQLInnoDBDialect -->
<property name="dialect">org.openmeetings.app.hibernate.utils.MySQL5MyISAMDialect</property>
<property name="connection.url">jdbc:mysql://localhost/openmeetings?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8</property>
<property name="hibernate.connection.CharSet">utf8</property>
<property name="hibernate.connection.characterEncoding">utf8</property>
<property name="hibernate.connection.useUnicode">true</property>
を使用している場合、データベース内のエンコーディング全体を utf8Only に設定する必要はありません
<!-- Database Scheme Auto Update -->
<property name="hbm2ddl.auto">update</property>
MySQL のデフォルトのエンコーディングを utf8 に設定する必要があります。 hbm2dll
を引き起こす データベースのデフォルトのエンコーディングを使用します。
まだ hbm2ddl.auto
を使用している可能性があります 、データベースのテーブルを手動で変更して、utf8 照合を行います。
hbm2ddl.auto
を使用していない場合 、お好みのエンコーディングでテーブルを簡単に作成できます。データベースを特別なエンコーディングに設定する必要はありません。
セバスチャン
次のように接続 URL 構成を変更することを検討してください:
<property name="hibernate.connection.url">
jdbc:mysql://localhost/yourdatabase?UseUnicode=true&characterEncoding=utf8
</property>
問題を解決します。
<ブロック引用>
エンコーディングを UTF-8 に変更するには?
MySQLDialect
を拡張したローカル方言クラスを使用しました テーブルタイプの文字列を変更しました:
public class LocalMysqlDialect extends MySQLDialect {
@Override
public String getTableTypeString() {
return " DEFAULT CHARSET=utf8";
}
}
私は実際に MySQL5InnoDBDialect
を拡張していました タイプなので、実際に使用していました:
public class LocalMysqlDialect extends MySQL5InnoDBDialect {
@Override
public String getTableTypeString() {
return " ENGINE=InnoDB DEFAULT CHARSET=utf8";
}
}