分享

Hibernate Mysql UTF-8 乱码问题解决

 hehffyy 2011-02-14
Hibernate Mysql UTF-8 乱码问题解决
2009-10-12 17:00

一、MySql 端配置

1. 修改my.ini文件
[mysql]
default-character-set=utf8    
说明:修改链接字符集和校对规则,它会同时设置character_set_client, character_set_connection, character_set_results。

也可以修改
[mysqld]
default-character-set=utf8
说明: 这里修改的是服务器的字符集和校对规则。

查看当前服务器的字符集和校对规则:
mysql> show variables like 'character_set_server';   
mysql> show variables like 'collation_server';

2. 修改数据库和表的字符集和校队规则。
例如:
-- Create Database.
drop database if exists HRDB;
create database HRDB DEFAULT CHARACTER SET utf8;
use HRDB;

-- 角色表
create table HR_ROLE ( 
ID bigint not null auto_increment,
NAME varchar(20) not null unique,
primary key (ID)
) ENGINE=INNODB DEFAULT CHARACTER SET utf8;

查看当前数据库的字符集和校对规则:
mysql> show variables like 'character_set_database';   
mysql> show variables like 'collation_database';

查看表的字符集和校对规则:
mysql> show create table HR_ROLE \G;

二、Hibernate端

1. 修改 hibernate.cfg.xml文件。
增加:
   <!-- Supported UTF-8 character set -->
   <property name="connection.useUnicode">true</property> 
   <property name="connection.characterEncoding">UTF-8</property>

这样就一切OK了。

注:笔者用的Hibernate版本是:hibernate-distribution-3.3.2.GA,MySql的版本是:mysql-5.1.37-win32。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多