También puede crear bases de datos con codificación.
Simplemente use phpMyAdmin
para la creación de la base de datos/tablas.
Hay algunos parámetros de URL que especificaría en la URL de la configuración de hibernación para tener la conexión usando 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>
No necesita configurar toda la codificación en la base de datos en utf8 Solo si está usando
<!-- Database Scheme Auto Update -->
<property name="hbm2ddl.auto">update</property>
Tendrá que establecer la codificación predeterminada de MySQL en utf8. Porque el hbm2dll
utilizará la codificación predeterminada de la base de datos.
Aún podrías usar hbm2ddl.auto
y modifique las tablas de la base de datos manualmente para tener una intercalación utf8.
Si no está utilizando hbm2ddl.auto
, simplemente puede crear las tablas con su codificación favorita. No es necesario configurar la base de datos con una codificación especial.
Sebastián
Considere cambiar la configuración de URL de conexión de esta manera:
<property name="hibernate.connection.url">
jdbc:mysql://localhost/yourdatabase?UseUnicode=true&characterEncoding=utf8
</property>
Resuelve el caso.
¿Cómo cambiar la codificación a UTF-8?
Usé una clase de dialecto local que amplió el MySQLDialect
y cambió la cadena de tipo de tabla:
public class LocalMysqlDialect extends MySQLDialect {
@Override
public String getTableTypeString() {
return " DEFAULT CHARSET=utf8";
}
}
De hecho, estaba extendiendo el MySQL5InnoDBDialect
escriba entonces realmente estaba usando:
public class LocalMysqlDialect extends MySQL5InnoDBDialect {
@Override
public String getTableTypeString() {
return " ENGINE=InnoDB DEFAULT CHARSET=utf8";
}
}