java连接mysql乱码解决 自己遇到的

1、用到hibernate的情况下需要在hibernate.cfg.xml文件中加入

   <property name="connection.url">
    jdbc:mysql://localhost:3306/logistics?useUnicode=true&amp;characterEncoding=UTF-8
   </property>

 

 

 

 

 

 

 

 

 

 

 

 

2

 

首先写一个java过滤字符编码类

package cn.com.csuinfosoft.filter;

/**
 * title:过滤字符编码
 */
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;

public class EncodeFilter implements Filter{

  private String encode = null;
   
public void destroy() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
request.setCharacterEncoding( encode );//设置字符编码
chain.doFilter(request,response);
}

//读取初始化参数 
public void init(FilterConfig config) throws ServletException {

encode = config.getInitParameter("encode");
System.out.println( "EncodeFilter...encode:"+encode );
}


}



其次在web.xml中配置
<!-- 字符编码过滤器 -->
  <filter>
  <filter-name>encode</filter-name>
  <filter-class>cn.com.csuinfosoft.filter.EncodeFilter</filter-class>
  <init-param>
  <param-name>encode</param-name>
  <param-value>utf-8</param-value>
  </init-param>
  </filter>
  <!-- 字符编码映射 -->
  <filter-mapping>
  <filter-name>encode</filter-name>
  <url-pattern>*.do</url-pattern>
  </filter-mapping>

你可能感兴趣的:(java,mysql,Hibernate,servlet,jdbc)