一、問題:
hibernate自動建表的編碼應該是數據默認的編碼格式,一般也不是utf-8。所以想要建表默認的編碼是UTF-8,應該怎么做呢?
二、解決方法:
拿mysql舉例:
(一)、修改hibernate建表的方言
1、一般情況我們使用的mysql方言為:org.hibernate.dialect.MySQL5Dialect
默認返回的是
2、重寫MySQL5InnoDBDialect類,覆蓋getTableTypeString方法
3、方言配置使用我們重寫的類,配置如下:
(1)Jpa數據庫連接配置:
把默認的配置
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
修改成
<property name="hibernate.dialect" value="com.lqy.spring.hibernate.mysql.MySQL5DialectUTF8" />
(2)spring整合hibernate配置:
<prop key="hibernate.dialect">com.lqy.spring.hibernate.mysql.MySQL5DialectUTF8</prop>
4、修改數據連接Url
jdbc.url=jdbc:mysql://192.168.1.11:3306/db?useUnicode=true&characterEncoding=UTF-8