GNU/Linux >> Belajar Linux >  >> Linux

Hibernate + MySQL:Cara mengatur pengkodean utf-8 untuk database dan tabel

Anda juga dapat membuat database dengan penyandian.
Cukup gunakan phpMyAdmin untuk pembuatan database/tabel.

Ada beberapa parameter URL yang akan Anda tentukan di URL setelan hibernasi agar memiliki sambungan menggunakan UTF8:

<!-- 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>

Anda tidak perlu menyetel seluruh penyandian dalam database ke utf8Only jika Anda menggunakan

<!-- Database Scheme Auto Update -->
<property name="hbm2ddl.auto">update</property>   

Anda HARUS mengatur penyandian default MySQL ke utf8. Penyebab hbm2dll akan menggunakan penyandian default database.

Anda mungkin masih menggunakan hbm2ddl.auto , dan ubah tabel database secara manual untuk mendapatkan susunan utf8.

Jika Anda tidak menggunakan hbm2ddl.auto , Anda cukup membuat tabel dengan penyandian favorit Anda. Tidak perlu menyetel database ke penyandian khusus.

Sebastian


Pertimbangkan untuk mengubah konfigurasi url koneksi seperti ini:

<property name="hibernate.connection.url">
    jdbc:mysql://localhost/yourdatabase?UseUnicode=true&amp;characterEncoding=utf8
</property>

Ini menyelesaikan kasus.


Bagaimana cara mengubah penyandian ke UTF-8?

Saya menggunakan kelas dialek lokal yang memperluas MySQLDialect dan mengubah string tipe tabel:

public class LocalMysqlDialect extends MySQLDialect {
    @Override
    public String getTableTypeString() {
        return " DEFAULT CHARSET=utf8";
    }
}

Saya sebenarnya memperluas MySQL5InnoDBDialect ketik jadi saya benar-benar menggunakan:

public class LocalMysqlDialect extends MySQL5InnoDBDialect {
    @Override
    public String getTableTypeString() {
        return " ENGINE=InnoDB DEFAULT CHARSET=utf8";
    }
}

Linux
  1. Bagaimana Cara Mengubah Panjang Baris Default Untuk Od Dan Hexdump?

  2. Cara memperbaiki database dan tabel MySQL dengan phpMyAdmin

  3. Cara Mengizinkan Koneksi Jarak Jauh ke Server Database MySQL

  1. Bagaimana cara mengatur cron untuk mengambil Cadangan Basis Data MySQL setiap hari dan menghapus file cadangan yang lebih lama yang lebih dari 10 hari?

  2. cara masuk ke mysql dan menanyakan database dari terminal linux

  3. Bagaimana saya bisa mendapatkan tanggal dan waktu saat ini di terminal dan mengatur perintah khusus di terminal untuk itu?

  1. Cara menyalin tabel MySQL antar database

  2. 5 Pengganti Gratis Terbaik untuk Server MySQL

  3. MySQL:Cara Backup (Dump) dan Restore Database Menggunakan mysqldump