在用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>
本文介绍了使用Hibernate向MySQL数据库插入中文数据时遇到的乱码问题及其解决方案。问题主要是由于数据库编码配置不一致导致,通过调整数据库表的字符集、JSP页面编码及Hibernate配置文件中的相关属性可以有效解决。

756

被折叠的 条评论
为什么被折叠?



