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数据库连接配置:
把默认的配置
<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>
<property name="jpaProperties"> <props> <!-- 自动建表类型 validate|create|create-drop|update --> <prop key="hibernate.hbm2ddl.auto">update</prop> <!-- 是否显示SQL --> <prop key="hibernate.show_sql">false</prop> <!-- 显示SQL是否格式化 --> <prop key="hibernate.format_sql">false</prop> <prop key="hibernate.dialect">com.lqy.spring.hibernate.mysql.MySQL5DialectUTF8</prop> </props> </property>
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/
相关推荐
1)使用mysql数据库,先建立一个空数据库base,最好编码使用utf-8或者utf-8mb4字符集,不然会乱码。 2)把application.properties中的数据库连接信息修改成自己数据库的连接信息。 3)修改spring.jpa.hibernate.ddl-...
utf8mb4 是一种 Unicode 编码方式,可以表示更多的 Unicode 字符,而 utf8 只能表示基本多语言 plane 中的 Unicode 字符。utf8mb4 是 MySQL 中的一种字符集,它可以存储更多的 Unicode 字符。 知识点 2: 数据库字符...
使用mysql数据库,先建立一个空数据库base,最好编码使用utf-8字符集,不然会乱码。 把application.properties中的数据库连接信息修改成自己数据库的连接信息。 修改spring.jpa.hibernate.ddl-auto为create,目的是...
- **解决方法**:确保Hibernate配置文件`hibernate.cfg.xml`中的`connection.charSet`属性设置为“UTF-8”,同时在连接池配置中也需指定正确的字符集。 3. **案例三**:使用Tomcat服务器部署Web应用时,中文乱码...
1)使用mysql数据库,先建立一个空数据库base,最好编码使用utf-8字符集,不然会乱码。 2)把application.properties中的数据库连接信息修改成自己数据库的连接信息。 3)修改spring.jpa.hibernate.ddl-auto为create...
系统部署:方式一:使用mysql数据库,先建立一个空数据库库,最好编码使用utf-8字符集,不然会乱码。把application.properties中的数据库连接信息修改成自己数据库的连接信息。修改spring.jpa.hibernate.ddl-auto为...
- 防止中文乱码:可以通过修改MySQL配置文件或在命令行中设置字符集,确保数据库支持UTF-8编码。 - 数据类型兼容性:如SQL Server的bit类型在MySQL中需转换为tinyint(1)。 3. **SQL语句的修改**: - 项目中的SQL...
例如,对于MySQL,可以设置`default-character-set`为`utf8`。 3. **数据类型转换**:在导入数据时,如SQL Server的`bit`类型在MySQL中需转换为`tinyint(1)`。数据导入通常借助第三方工具,如Navicat,或者编写...