Hibernate与Mysql数据库结合乱码问题解决51CTO博客 - 牛牛娱乐

Hibernate与Mysql数据库结合乱码问题解决51CTO博客

2019-01-04 21:32:05 | 作者: 傲薇 | 标签: 问题,乱码,结合 | 浏览: 2460

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页面显现中文问题就处理了。假如你的使用仍是有乱码问题,那就要具体对应问题状况,然后再处理问题了。
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章