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