在用hibernate插入mysql中文数据库发生了乱码问题,网上查了下,大致是由于mysql默认数据库的collation不是utf-8的,或者帮你页面设置不统一导致。
解决方法: 首先把表的collation设置为utf8-default-collation 在jsp页面上加上<%@ page language="java" import="java.util.*" contentType="text/html;" pageEncoding="UTF-8"%> 在hibernate.cfg.xml<session-factory>中加入 <property name="connection.useUnicode">true</property> <property name="connection.characterEncoding">UTF-8</property>
connection.url=jdbc:mysql://120.25.194.61:3306/hibernate?characterEncoding=utf-8
插入测试成功插入中文
另外在mysql command line client中
mysql>show variables like 'character_set_server';
mysql>show variables like 'collation_server';
查看当前服务器的字符集和校对规则
从5.7.11开始要你显示指定是否适用useSSL
可以用如下操作: <property name="connection.useSSL">false</property> 或 <property name="connection.url">
<![[CData]jdbc:mysql://120.25.194.61:3306/hibernate?characterEncoding=utf-8&useSSL=false[/CData]]>
</property>