`
阅读更多

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&amp;characterEncoding=UTF-8

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

蕃薯耀 2016年4月14日 15:30:49 星期四

http://fanshuyao.iteye.com/

2
8
分享到:
评论

相关推荐

    基于SpringBoot+shiro+ztree的权限管理后台源码+数据库文件.zip

    1)使用mysql数据库,先建立一个空数据库base,最好编码使用utf-8或者utf-8mb4字符集,不然会乱码。 2)把application.properties中的数据库连接信息修改成自己数据库的连接信息。 3)修改spring.jpa.hibernate.ddl-...

    Spring Data Jpa Mysql使用utf8mb4编码的示例代码

    utf8mb4 是一种 Unicode 编码方式,可以表示更多的 Unicode 字符,而 utf8 只能表示基本多语言 plane 中的 Unicode 字符。utf8mb4 是 MySQL 中的一种字符集,它可以存储更多的 Unicode 字符。 知识点 2: 数据库字符...

    基于springboot的后台管理系统基本框架.zip

    使用mysql数据库,先建立一个空数据库base,最好编码使用utf-8字符集,不然会乱码。 把application.properties中的数据库连接信息修改成自己数据库的连接信息。 修改spring.jpa.hibernate.ddl-auto为create,目的是...

    中文乱码问题

    - **解决方法**:确保Hibernate配置文件`hibernate.cfg.xml`中的`connection.charSet`属性设置为“UTF-8”,同时在连接池配置中也需指定正确的字符集。 3. **案例三**:使用Tomcat服务器部署Web应用时,中文乱码...

    SPPanAdmin.zip_Bootstrap Table_SPPanAdmin_Hadmin_SpringBoot JPA_

    1)使用mysql数据库,先建立一个空数据库base,最好编码使用utf-8字符集,不然会乱码。 2)把application.properties中的数据库连接信息修改成自己数据库的连接信息。 3)修改spring.jpa.hibernate.ddl-auto为create...

    SPPanAdmin:基于springboot的后台管理系统基本框架

    系统部署:方式一:使用mysql数据库,先建立一个空数据库库,最好编码使用utf-8字符集,不然会乱码。把application.properties中的数据库连接信息修改成自己数据库的连接信息。修改spring.jpa.hibernate.ddl-auto为...

    数据库迁移及区别比较(Oracle,Sql Server,MySql).pdf

    - 防止中文乱码:可以通过修改MySQL配置文件或在命令行中设置字符集,确保数据库支持UTF-8编码。 - 数据类型兼容性:如SQL Server的bit类型在MySQL中需转换为tinyint(1)。 3. **SQL语句的修改**: - 项目中的SQL...

    数据库迁移及区别比较(Oracle,Sql Server,MySql).docx

    例如,对于MySQL,可以设置`default-character-set`为`utf8`。 3. **数据类型转换**:在导入数据时,如SQL Server的`bit`类型在MySQL中需转换为`tinyint(1)`。数据导入通常借助第三方工具,如Navicat,或者编写...

Global site tag (gtag.js) - Google Analytics