我有用UTF-8編寫的mysql數據庫和使用hibernate編寫的java應用程序。當我在eclipse中運行應用程序時,一切都很好。但是在不同機器上的生產中,從DB返回的值已損壞。 我打印的值記錄(立即得到它們),我清楚地看到,我從數據庫中獲得的值在生產中損壞。mysql utf-8從一臺機器返回亂碼
DB本身對於這兩種環境都是相同的DB。值存儲正常。
任何想法可能是什麼原因呢?
UPDATE:
我忘了說,它有時會發生。我認爲在50%的時間內它工作正常。
更新2:
這裏是hibernate.cfg.xml中:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://myDB:3306/myApp?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8</property>
<property name="hibernate.connection.username">username</property>
<property name="hibernate.connection.password">password</property>
<!-- <property name="hibernate.connection.pool_size">10</property> -->
<property name="hibernate.connection.isolation">2</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.connection.provider_class">com.zaxxer.hikari.hibernate.HikariConnectionProvider</property>
<property name="hibernate.hikari.minimumIdle">5</property>
<property name="hibernate.hikari.maximumPoolSize">10</property>
<property name="hibernate.hikari.idleTimeout">30000</property>
<mapping class="someclass1"/>
<mapping class="someclass2"/>
<mapping class="someclass3"/>
<mapping class="someclass4"/>
</session-factory>
</hibernate-configuration>
「我打印值記錄(讓他們之後),我清楚地看到,我從數據庫獲取值在生產中被損壞。」 - 那麼,這可能是你如何記錄的問題。如果沒有*至少*看到代碼,並且理想的是配置,很難說出有什麼問題。 –