hibernate自动建表采用UTF-8字符编码
hibernate建表默认为UTF-8编码
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
蕃薯耀 2016年4月14日 15:30:49 星期四
http://fanshuyao.iteye.com/
一、问题:
hibernate自动建表的编码应该是数据默认的编码格式,一般也不是utf-8。所以想要建表默认的编码是UTF-8,应该怎么做呢?
二、解决方法:
拿mysql举例:
(一)、修改hibernate建表的方言
1、一般情况我们使用的mysql方言为:org.hibernate.dialect.MySQL5Dialect
默认返回的是
@Override public String getTableTypeString() { return " ENGINE=InnoDB"; }
2、重写MySQL5InnoDBDialect类,覆盖getTableTypeString方法
package com.lqy.spring.hibernate.mysql;import org.hibernate.dialect.MySQL5InnoDBDialect;public class MySQL5DialectUTF8 extends MySQL5InnoDBDialect{ @Override public String getTableTypeString() { return " ENGINE=InnoDB DEFAULT CHARSET=utf8"; }}
3、方言配置使用我们重写的类,配置如下:
(1)Jpa数据库连接配置:
把默认的配置
修改成
(2)spring整合hibernate配置:
com.lqy.spring.hibernate.mysql.MySQL5DialectUTF8
update false false com.lqy.spring.hibernate.mysql.MySQL5DialectUTF8
4、修改数据连接Url
jdbc.url=jdbc:mysql://192.168.1.11:3306/db?useUnicode=true&characterEncoding=UTF-8
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
蕃薯耀 2016年4月14日 15:30:49 星期四
http://fanshuyao.iteye.com/