这几天在学习Hibernate,数据库用的是MySQL,在学习的过程中,遇到了中文显示的问题,于是在网上找了好多资料!最终搞定,于是写出来初学者一起分享!<o:p></o:p>
我觉得要考虑hibernate和mysql的中文显示问题应该从以下几个方面考虑:<o:p></o:p>
(1)Hibernate所才用的字符集<o:p></o:p>
(2)MySql所采用的字符集(应该是这个软件的字符集,我不知道这样说合不合适,暂且这样说!)<o:p></o:p>
(3)创见数据库和表时 所采用的字符集<o:p></o:p>
针对以上的问题,我用以下的办法解决:<o:p></o:p>
对于Hibernate而言,不知道大家是否记得,我们使用JDBC时,可以有这样的语句:<o:p></o:p>
connection =DriverManager.getConnection( "jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=GBK" );<o:p></o:p>
<o:p> </o:p>
在Hibernate也可以有这样的设置,这就需要在Hibernate.cfg.xml文件中进行配置:<o:p></o:p>
<!----><o:p></o:p>
<!---->
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"<o:p></o:p>
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><o:p></o:p>
<o:p> </o:p>
<!----><o:p></o:p>
<hibernate-configuration></hibernate-configuration><o:p></o:p>
<o:p> </o:p>
<session-factory></session-factory><o:p></o:p>
<property name="connection.username">root</property>
<o:p></o:p>
<property name="connection.url">jdbc:mysql://localhost:3306/gcwebt?useUnicode=true&characterEncoding=UTF-8</property>
<o:p></o:p>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<o:p></o:p>
<property name="myeclipse.connection.profile">gcweb</property>
<o:p></o:p>
<property name="connection.password">19850520</property>
<o:p></o:p>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<o:p></o:p>
<property name="show_sql">true</property>
<o:p></o:p>
<mapping resource="hibernate.cfg.xml"></mapping><o:p></o:p>
<mapping resource="edu/jlu/gcweb/model/User.hbm.xml"></mapping><o:p></o:p>
<o:p></o:p>
<o:p> </o:p>
<o:p></o:p>
<o:p> </o:p>
在以上配置的的第二个属性我添加了:?useUnicode=true&characterEncoding=UTF-8<o:p></o:p>
<o:p> </o:p>
这样,Hibernate处理完毕。<o:p></o:p>
<o:p> </o:p>
下面,对于MySql数据库本身而言,在安装完之后,他默认的字符集是:latin1<o:p></o:p>
<o:p></o:p>
为了中文显示,我要将它变为utf8,就是我用UltraEdit打开 MySQL安装目录下的my.ini文件找到如下内容:<o:p></o:p>
[client]<o:p></o:p>
port=3306<o:p></o:p>
[mysql]<o:p></o:p>
default-character-set=latin1<o:p></o:p>
# SERVER SECTION<o:p></o:p>
# ----------------------------------------------------------------------<o:p></o:p>
# The following options will be read by the MySQL Server. Make sure that<o:p></o:p>
# you have installed the server correctly (see above) so it reads this<o:p></o:p>
# file.<o:p></o:p>
#<o:p></o:p>
[mysqld]<o:p></o:p>
# The TCP/IP Port the MySQL Server will listen on<o:p></o:p>
port=3306<o:p></o:p>
#Path to installation directory. All paths are usually resolved relative to this.<o:p></o:p>
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"<o:p></o:p>
#Path to the database root<o:p></o:p>
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"<o:p></o:p>
# The default character set that will be used when a new schema or table is<o:p></o:p>
# created and no character set is defined<o:p></o:p>
default-character-set=latin1<o:p></o:p>
我将上文中的latin1改为utf8: 如下:<o:p></o:p>
[client]<o:p></o:p>
port=3306<o:p></o:p>
[mysql]<o:p></o:p>
default-character-set=utf8<o:p></o:p>
# SERVER SECTION<o:p></o:p>
# ----------------------------------------------------------------------<o:p></o:p>
#<o:p></o:p>
# The following options will be read by the MySQL Server. Make sure that<o:p></o:p>
# you have installed the server correctly (see above) so it reads this<o:p></o:p>
# file.<o:p></o:p>
#<o:p></o:p>
[mysqld]<o:p></o:p>
# The TCP/IP Port the MySQL Server will listen on<o:p></o:p>
port=3306<o:p></o:p>
#Path to installation directory. All paths are usually resolved relative to this.<o:p></o:p>
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"<o:p></o:p>
#Path to the database root<o:p></o:p>
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"<o:p></o:p>
# The default character set that will be used when a new schema or table is<o:p></o:p>
# created and no character set is defined<o:p></o:p>
default-character-set=utf8<o:p></o:p>
<o:p> </o:p>
这样,剩下的数据库和表的问题就好办了,一下是创建数据库和表的语句:<o:p></o:p>
create database xxx character set utf8<o:p></o:p>
create table xxx character set utf8<o:p></o:p>
或者:<o:p></o:p>
create table XXX DEFAULT CHARSET=utf8;<o:p></o:p>
<o:p> </o:p>
以上是我的心得,作为一个初学者,我希望得到大家的指导!<o:p></o:p>
分享到:
相关推荐
在开发Java Web应用程序时,经常会遇到数据库操作中的字符编码问题,特别是当使用Hibernate框架与MySQL数据库结合时。本文将深入探讨“hibernate+mysql乱码问题”的原因、解决方案以及如何预防这类问题。 首先,...
在使用Hibernate进行数据库操作时,可能会遇到MySQL数据库中文排序不正确的问题。这通常是由于字符集设置、数据库排序规则以及Hibernate的配置等因素导致的。本文将深入探讨如何解决这些问题,确保MySQL数据库中的...
以下是解决hibernate与MySQL存储中文时出现乱码问题的详细步骤和相关知识点: 1. **配置Hibernate连接URL**: 在`hibernate.cfg.xml`配置文件中,需要正确设置连接URL以指定字符集。添加`useUnicode=true`和`...
### Hibernate与MySQL中文乱码问题解析及解决方案 #### 一、问题概述 在使用Hibernate框架进行Java应用程序开发的过程中,尤其是在连接MySQL数据库时,经常会遇到中文显示乱码的问题。这一问题通常发生在从数据库...
在开发Java Web应用时,特别是涉及到Hibernate与MySQL的整合时,中文字符的存储和显示问题是一个常见的挑战。中文字符乱码通常发生在数据的输入、处理和输出三个环节,需要在多个层面进行配置和调整以确保正确的字符...
本文将深入解析在使用Hibernate框架与MySQL数据库时遇到的中文乱码问题,以及如何解决这一问题。 首先,我们需要理解中文乱码出现的根本原因。当Java应用程序中的持久化类包含中文字符串,并通过Hibernate映射到...
#### 背景与问题描述 在使用Hibernate框架进行数据库操作时,可能会遇到中文乱码的问题。特别是在使用MySQL作为数据库,并且已将数据库编码设置为`utf-8`的情况下,依然出现乱码现象。这不仅影响数据的正确性,也...
### Hibernate中文问题解决方案 在开发基于Java的应用程序时,Hibernate作为一个强大的对象关系映射(ORM)框架被广泛采用。然而,在处理中文字符时,开发者可能会遇到各种各样的问题,如乱码显示等。本文将详细...
Struts2、Spring、Hibernate、JDK、MySQL和iBatis是Java开发中常见的六大核心技术,它们构建了企业级Web应用程序的基础架构。下面将详细解释这些技术及其在实际开发中的应用。 1. Struts2:Struts2是一个开源的MVC...
ext-patch.css解决了火狐下中文显示小字体的问题!!!,请一定注意ext-patch.css一定要在ext-all.css后面引入! 酒店住宿管理系统采用EXT+Spring+Hibernate框架开发,因为是java开发的经验和项目开发的时间不足,很多...
标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...
在使用Hibernate3进行数据库操作时,中文查询出错是一个常见的问题,这主要涉及到字符编码、数据库配置以及Hibernate的设置等多个方面。以下将详细介绍如何解决这个问题。 首先,我们要明白错误的根源通常在于字符...
Struts2、Hibernate、Spring、JavaScript、MySQL和CSS是Web开发中的重要技术栈,它们各自在不同的层面上发挥作用,构建出高效、稳定的Web应用程序。以下是对这些技术的详细解释: **Struts2**:Struts2是一个基于...
ext-patch.css解决了火狐下中文显示小字体的问题!!!,请一定注意ext-patch.css一定要在ext-all.css后面引入! 酒店住宿管理系统采用EXT+Spring+Hibernate框架开发,因为是java开发的经验和项目开发的时间不足,很多...
《Hibernate4.1.11中文手册》是一个全面介绍Hibernate框架的资源集合,适用于初学者和有经验的开发人员。Hibernate是Java平台上的一个开源对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发人员可以更加...
《Hibernate 3.2 官方中文完全参考手册》是一份详尽的文档,旨在为开发者提供关于Hibernate框架全面深入的理解和使用指南。Hibernate是一种Java持久化解决方案,它通过对象关系映射(ORM)技术,将Java应用中的对象...
在本篇文章中,我们将深入探讨如何解决Struts + Hibernate + MyEclipse + Tomcat + MySQL环境中出现的乱码问题。该问题通常出现在处理中文字符时,由于编码设置不当导致中文显示为乱码或无法正常读取。为了确保系统...
ext-patch.css解决了火狐下中文显示小字体的问题!!!,请一定注意ext-patch.css一定要在ext-all.css后面引入! 酒店住宿管理系统采用EXT+Spring+Hibernate框架开发,因为是java开发的经验和项目开发的时间不足,很多...
常见的支持数据库包括MySQL、Oracle、PostgreSQL等。 #### 三、介绍 本教程将引导读者逐步完成一个简单的Java Hibernate应用的开发过程。主要内容包括: - 如何为Java项目添加MyEclipse Hibernate支持。 - 在项目...