GNU/Linux >> Linux Esercitazione >  >> Linux

Hibernate + MySQL:come impostare la codifica utf-8 per database e tabelle

Puoi anche creare database con codifica.
Usa semplicemente phpMyAdmin per la creazione di database/tabelle.

Ci sono alcuni parametri URL che dovresti specificare nell'URL delle impostazioni di ibernazione per avere la connessione 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>

Non è necessario impostare l'intera codifica nel database su utf8Solo se si utilizza

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

Dovrai impostare la codifica predefinita di MySQL su utf8. Causa il hbm2dll utilizzerà la codifica predefinita del database.

Potresti ancora usare hbm2ddl.auto e modificare manualmente le tabelle del database in modo che abbiano regole di confronto utf8.

Se non stai usando hbm2ddl.auto , puoi semplicemente creare le tabelle con la tua codifica preferita. Non è necessario impostare il database su una codifica speciale.

Sebastiano


Prendi in considerazione la possibilità di modificare la configurazione dell'URL di connessione in questo modo:

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

Risolve il caso.


Come modificare la codifica in UTF-8?

Ho usato una classe dialettale locale che ha esteso il MySQLDialect e ho cambiato la stringa del tipo di tabella:

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

In realtà stavo estendendo il MySQL5InnoDBDialect type quindi stavo davvero usando:

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

Linux
  1. Come copiare tabelle MySQL tra database

  2. I 5 migliori sostituti gratuiti per MySQL Server

  3. Come installare e configurare mysql 8 su Ubuntu 20.04

  4. Come riparare database e tabelle MySQL con phpMyAdmin

  5. Come consentire la connessione remota al server di database MySQL

Come creare un server di database MySQL e un database in Azure Cloud

Crea database e tabelle MySQL usando PHP in XAMPP

Come configurare un database utilizzando la procedura guidata del database MySQL

Come eseguire il backup e ripristinare il database MSSQL/MySQL in Plesk

Come riparare un database MySQL?

Come ottimizzare un database MySQL?