GNU/Linux >> Linux の 問題 >  >> Linux

Hibernate + MySQL:データベースとテーブルのエンコーディングを utf-8 に設定する方法

エンコーディングを使用してデータベースを作成することもできます。
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&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;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&amp;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";
    }
}

Linux
  1. コマンドラインを使用してMySQLでデータベースを作成する方法

  2. MySQL:mysqldumpを使用してデータベースをバックアップ(ダンプ)および復元する方法

  3. phpMyAdminを使用してMySQLデータベースとテーブルを修復する方法

  1. データベース間でMySQLテーブルをコピーする方法

  2. MySQLデータベースサーバーへのリモート接続を許可する方法

  3. MySQLデータベースバックアップを毎日取得し、10日より古い古いバックアップファイルを削除するようにcronを設定するにはどうすればよいですか?

  1. MySQLサーバーの5つの最高の無料代替品

  2. Ubuntu20.04にmysql8をインストールしてセットアップする方法

  3. OdとHexdumpのデフォルトの行の長さを変更するにはどうすればよいですか?