GNU/Linux >> Tutoriales Linux >  >> Linux

Hibernate + MySQL:cómo configurar la codificación utf-8 para bases de datos y tablas

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

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

Linux
  1. Cómo copiar tablas MySQL entre bases de datos

  2. Cómo crear una base de datos en MySQL usando la línea de comandos

  3. ¿Cómo configurar un cron para realizar una copia de seguridad de la base de datos MySQL diariamente y eliminar los archivos de copia de seguridad más antiguos que tienen más de 10 días?

  4. Cómo enumerar y configurar el contexto de SELinux para el servidor MySQL

  5. ¿Cómo puedo obtener la fecha y la hora actuales en la terminal y establecer un comando personalizado en la terminal para ello?

Cómo crear un servidor de base de datos MySQL y una base de datos en Azure Cloud

Cree una base de datos y una tabla MySQL usando PHP en XAMPP

Cómo configurar una base de datos utilizando el asistente de base de datos MySQL

Cómo realizar una copia de seguridad y restaurar la base de datos MSSQL/MySQL en Plesk

¿Cómo reparar una base de datos MySQL?

¿Cómo optimizar una base de datos MySQL?