GNU/Linux >> Znalost Linux >  >> Linux

Hibernate + MySQL:Jak nastavit kódování utf-8 pro databázi a tabulky

Můžete také vytvářet databáze s kódováním.
Jednoduše použijte phpMyAdmin pro vytvoření databáze/tabulky.

Existují některé parametry adresy URL, které byste zadali v adrese URL nastavení hibernace, abyste měli připojení pomocí 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>

Nemusíte nastavit celé kódování v databázi na utf8, pouze pokud používáte

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

BUDETE muset nastavit výchozí kódování MySQL na utf8. Způsobit hbm2dll použije výchozí kódování databáze.

Stále můžete používat hbm2ddl.auto a ručně upravte tabulky databáze tak, aby měly řazení utf8.

Pokud nepoužíváte hbm2ddl.auto , můžete jednoduše vytvořit tabulky s vaším oblíbeným kódováním. Není třeba nastavovat databázi na speciální kódování.

Sebastian


Zvažte změnu konfigurace adresy URL připojení takto:

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

Vyřeší to případ.


Jak změnit kódování na UTF-8?

Použil jsem třídu místního dialektu, která rozšířila MySQLDialect a změnil řetězec typu tabulky:

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

Ve skutečnosti jsem rozšiřoval MySQL5InnoDBDialect typ, takže jsem opravdu používal:

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

Linux
  1. Jak vytvořit databázi v MySQL pomocí příkazového řádku

  2. MySQL:Jak zálohovat (vypsat) a obnovit databázi pomocí mysqldump

  3. Jak nainstalovat a nastavit mysql 8 na Ubuntu 20.04

  1. Jak změnit výchozí délku čáry pro Od a Hexdump?

  2. Jak opravit databáze a tabulky MySQL pomocí phpMyAdmin

  3. Jak povolit vzdálené připojení k databázovému serveru MySQL

  1. 5 nejlepších bezplatných náhrad pro server MySQL

  2. Jak nastavit cron pro každodenní zálohování databáze MySQL a odstranění starších souborů záloh, které jsou starší než 10 dní?

  3. Jak vypsat a nastavit kontext SELinux pro server MySQL