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&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>
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&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";
}
}