GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Hibernate + MySQL:So stellen Sie die Kodierung utf-8 für Datenbank und Tabellen ein

Sie können auch Datenbanken mit Codierung erstellen.
Verwenden Sie einfach phpMyAdmin für die Datenbank-/Tabellenerstellung.

Es gibt einige URL-Parameter, die Sie in der URL der Ruhezustandseinstellungen angeben würden, um die Verbindung mit UTF8 herzustellen:

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

Sie müssen nicht die gesamte Codierung in der Datenbank auf utf8 setzen, nur wenn Sie

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

Sie MÜSSEN die Standardcodierung von MySQL auf utf8 einstellen. Verursache die hbm2dll verwendet die Standardkodierung der Datenbank.

Sie können immer noch hbm2ddl.auto verwenden , und ändern Sie die Tabellen der Datenbank manuell, um eine utf8-Sortierung zu haben.

Wenn Sie hbm2ddl.auto nicht verwenden , können Sie die Tabellen einfach mit Ihrer bevorzugten Kodierung erstellen. Die Datenbank muss nicht auf eine spezielle Kodierung eingestellt werden.

Sebastian


Erwägen Sie, die Konfiguration der Verbindungs-URL wie folgt zu ändern:

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

Es löst den Fall.


Wie ändere ich die Kodierung auf UTF-8?

Ich habe eine lokale Dialektklasse verwendet, die den MySQLDialect erweitert hat und den tabellenartigen String geändert:

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

Ich habe tatsächlich den MySQL5InnoDBDialect erweitert Typ, also habe ich wirklich verwendet:

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

Linux
  1. Die 5 besten kostenlosen Ersatzprodukte für MySQL Server

  2. So erstellen Sie eine Datenbank in MySQL über die Befehlszeile

  3. MySQL:So sichern (dumpen) und wiederherstellen Sie eine Datenbank mit mysqldump

  4. So installieren und konfigurieren Sie mysql 8 unter Ubuntu 20.04

  5. Wie ändere ich die Standardzeilenlänge für Od und Hexdump?

So erstellen Sie einen MySQL-Datenbankserver und eine Datenbank in Azure Cloud

Erstellen Sie eine MySQL-Datenbank und -Tabelle mit PHP in XAMPP

So richten Sie eine Datenbank mit dem MySQL-Datenbankassistenten ein

So erstellen Sie eine Sicherungskopie und stellen die MSSQL/MySQL-Datenbank in Plesk wieder her

Wie repariert man eine MySQL-Datenbank?

Wie optimiert man eine MySQL-Datenbank?