城东小巷分享 http://blog.sciencenet.cn/u/chengdong166

博文

Hibernate操作Mysql数据库乱码问题

已有 3609 次阅读 2014-6-19 08:09 |个人分类:数据库学习|系统分类:科研笔记| Mysql, 中文乱码, Hibernate

Mysql数据库:

安装时选择字符集为gbk;

配置时选择字符集为gbk;


创建数据库选择字符集为utf8

create database eschool default charset utf8 collate utf8_unicode_ci;

创建表时支持中文

CREATE TABLE `xtuser` (

 `id` int(10) NOT NULL,

 `username` varchar(50) NOT NULL,

 `password` varchar(50) NOT NULL,

 `logintime` date default NULL,

 `enable` int(1) default NULL,

 `grade` int(2) default NULL,

 PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=gbk


上述操作后,通过client客户端可以正常insert中文。


Hibernate连接配置时勿忘加

<property name="url" value="jdbc:mysql://localhost:3306/sim?useUnicode=true&amp;characterEncoding=UTF-8"></property>

保证与数据库字符集对应。



附:查看数据库、表字符集设置命令

mysql> show variables like '%chara%';

+--------------------------+----------------------------------------------------

-----------+

| Variable_name            | Value

          |

+--------------------------+----------------------------------------------------

-----------+

| character_set_client     | gbk

          |

| character_set_connection | gbk

          |

| character_set_database   | gbk

          |

| character_set_filesystem | binary

          |

| character_set_results    | gbk

          |

| character_set_server     | gbk

          |

| character_set_system     | utf8

          |

| character_sets_dir       | D:Program Files (x86)MySQLMySQL Server 5.0share

charsets |

+--------------------------+----------------------------------------------------

-----------+

8 rows in set (0.02 sec)


mysql> show create database sim;

+----------+--------------------------------------------------------------+

| Database | Create Database                                              |

+----------+--------------------------------------------------------------+

| sim      | CREATE DATABASE `sim` /*!40100 DEFAULT CHARACTER SET utf8 */ |

+----------+--------------------------------------------------------------+

1 row in set (0.06 sec)


mysql> show create table xtuser;

ERROR 1046 (3D000): No database selected

mysql> use sim;

Database changed

mysql> show create table xtuser;

+--------+----------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

---------------------------------------------+

| Table  | Create Table



                                            |

+--------+----------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

---------------------------------------------+

| xtuser | CREATE TABLE `xtuser` (

 `id` int(10) NOT NULL,

 `username` varchar(50) NOT NULL,

 `password` varchar(50) NOT NULL,

 `logintime` date default NULL,

 `enable` int(1) default NULL,

 `grade` int(2) default NULL,

 PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

+--------+----------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

---------------------------------------------+

1 row in set (0.00 sec)


mysql> alter table xtuser default character set gbk collate gbk_chinese_ci;

Query OK, 3 rows affected (0.28 sec)

Records: 3  Duplicates: 0  Warnings: 0


mysql> show create table xtuser;

+--------+----------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--+

| Table  | Create Table




 |

+--------+----------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--+

| xtuser | CREATE TABLE `xtuser` (

 `id` int(10) NOT NULL,

 `username` varchar(50) character set utf8 NOT NULL,

 `password` varchar(50) character set utf8 NOT NULL,

 `logintime` date default NULL,

 `enable` int(1) default NULL,

 `grade` int(2) default NULL,

 PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=gbk |

+--------+----------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--+

1 row in set (0.00 sec)




https://wap.sciencenet.cn/blog-448935-804594.html

上一篇:ajax获取json数据然后将其装载到jqgrid实现
下一篇:js资源整合
收藏 IP: 116.207.203.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-23 22:33

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部