本文共 814 字,大约阅读时间需要 2 分钟。
一、问题:
hibernate自动建表的编码应该是数据默认的编码格式,一般也不是utf-8。所以想要建表默认的编码是UTF-8,应该怎么做呢?
二、解决方法:
拿mysql举例:
(一)、修改hibernate建表的方言
1、一般情况我们使用的mysql方言为:org.hibernate.dialect.MySQL5Dialect
默认返回的是
@OverridepublicString getTableTypeString() {return " ENGINE=InnoDB";
}
2、重写MySQL5InnoDBDialect类,覆盖getTableTypeString方法
packagecom.lqy.spring.hibernate.mysql;importorg.hibernate.dialect.MySQL5InnoDBDialect;public class MySQL5DialectUTF8 extendsMySQL5InnoDBDialect{
@OverridepublicString 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
转载地址:http://vrhdy.baihongyu.com/