1.创建数据库时设定编码为utf-8
CREATE DATABASE `hibernate`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
2.创建表时设定编码为utf-8
CREATE TABLE `t_user` (
`id` varchar(40) NOT NULL default '',
`name` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.hibernate配置url时设定编码为utf-8
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=utf-8</property>
遇到的问题:第一次配置为
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=utf-8</property>
结果出现了下面的异常:
Error parsing XML: /hibernate.cfg.xml(8) The reference to entity "characterEncoding" must end with the ';' delimiter.
仅仅在&后面缺少了“amp;”,就出现了这个异常,原因是:
在xml文件中以下几类字符要进行转义替换:
⁢ | < | 小于号 |
> | > | 大于号 |
& | & | 和 |
' | ' | 单引号 |
" | " | 双引号 |