开发者社区> 科技小先锋> 正文

Hibernate与Mysql数据库结合乱码问题解决

简介:
+关注继续查看
  Hibernate+MySQL5.0结合的默认配置,那么向数据库写入中文数据的时候会是乱码,且jsp页面显示中文的时候也有有乱码问题,很是烦人。
  经过查询及整理,处理方法如下:
  1、修改hibernate的配置文件,在url处添加绿色的一段:  
<hibernate-configuration> 
<session-factory name="myjava"> 
  <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property> 
  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/myjava?useUnicode=true&amp;characterEncoding=UTF-8</property> 
  <property name="hibernate.connection.username">root</property> 
  <property name="hibernate.connection.password">test</property> 
  <property name="connection.pool_size">10</property> 
  <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> 
  <property name="current_session_context_class">thread</property> 
  <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 
  <property name="show_sql">true</property> 
  <property name="hbm2ddl.auto">create</property> 
</session-factory> 
</hibernate-configuration>
 
2、jsp页面设置语言,同时form表单使用post方式提交
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
<title>Event Manager</title> 
</head> 
<body> 
<form method="post"> 
... 
</form> 
</body> 
</html>
 
3、创建一个语言过滤servlet,用来处理请求和发送的字符编码
(1)CharacterEncodingFilter.java文件的源码如下:
import java.io.IOException; 

import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
import javax.servlet.http.HttpServlet; 

@SuppressWarnings("serial"
public class CharacterEncodingFilter extends HttpServlet implements Filter { 

    public CharacterEncodingFilter() { 
  // TODO Auto-generated constructor stub 
    } 

    public void doFilter(ServletRequest arg0, ServletResponse arg1, 
      FilterChain arg2) throws IOException, ServletException { 
  //下面的两个编码根据你的项目所使用的中文字符集确定 
  arg0.setCharacterEncoding("UTF-8"); 
  arg1.setCharacterEncoding("UTF-8"); 
  arg2.doFilter(arg0, arg1); 
    } 
}
 
(2)WEB-INF/web.xml文件修改如下:
<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]" 
    id="WebApp_ID" version="2.5"> 
  
    <filter> 
  <filter-name>CharacterEncodingFilter</filter-name> 
  <filter-class>events.CharacterEncodingFilter</filter-class> 
    </filter> 
    <filter-mapping> 
  <filter-name>CharacterEncodingFilter</filter-name> 
  <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <welcome-file-list> 
  <welcome-file>index.html</welcome-file> 
  <welcome-file>index.htm</welcome-file> 
  <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app>
 
  到此,hibernate和mysql结合的中文存储乱码问题,jsp页面显示中文问题就解决了。如果你的应用还是有乱码问题,那就要详细对应问题情况,然后再处理问题了。


本文转自xudayu 51CTO博客,原文链接:http://blog.51cto.com/xudayu/64735,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数据库写入中文乱码问题 编码latin1解决方法
数据库写入中文乱码问题 编码latin1解决方法
34 0
mybatis学习(13): 连接数据库之前的准备(测试连接)
mybatis学习(13): 连接数据库之前的准备(测试连接)
62 0
【MySQL】SpringBoot数据库操作乱码问题
【MySQL】SpringBoot数据库操作乱码问题
196 0
DbVisualizer解决中文乱码问题
DbVisualizer解决中文乱码问题
386 0
eclipse中使用hibernate对mysql进行增删改查
数据库操作前后的一些必须的操作进行数据库操作前: //生成会话工厂 SessionFactory sf = new Configuration().configure().buildSessionFactory(); //从会话工厂中获取一个会话 Session s = sf.
1550 0
springboot+mybatis+druid+mysql 保存emoji表情
       最近在学习springboot,在练习做一个简单博客系统时遇到了保存emoji表情出错,搜索了半天才搞定。这里记录下来,希望能够帮助到自己或有需要的人不要踩坑。
3702 0
hibernate连接数据库配置
hibernate连接数据库配置 1.连接mySql,文件配置如下:  <?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE hibernate-configuration PUBLIC  .
1663 0
DbVisualizer乱码问题解决
找到工具栏进行字体设置 Tools》ToolProperties 找到Fonts 如下图 在右侧进行设置就好了。  欢迎大家一起说出自己的想法。
1109 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
冬季实战营第三期:MySQL数据库进阶实战
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载