myeclispe中向mysql中插入中文資料出現??問題解決辦法

來源:互聯網
上載者:User

標籤:

或許很多人會出現??這種令人頭痛的mysql的中文亂碼問題:解決如下:

1.先對於建立的資料庫要設定預設的字元集為UTF-8

create database mydb default character set utf8 collate utf8_general_ci;

2.然後對於想對應的表進行設定預設字元集

CREATE TABLE IF NOT EXISTS `mydb` (  `username` varchar(64) NOT NULL,  `userid` int(11) NOT NULL, ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.最重要的一步在jdbc中的uri的地址中添加如下語句?characterEncoding=UTF-8設定字元集為UTF-8

jdbc:mysql://localhost:3306/db_name?characterEncoding=UTF-8

如下是一個例子:
regServlet.java

package cn.lonecloud.demo;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class RegServlet extends HttpServlet {    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        response.setContentType("text/html");        PrintWriter out = response.getWriter();        doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        response.setContentType("text/html;charset=UTF-8");        PrintWriter out = response.getWriter();        Connection conn=null;        PreparedStatement prst=null;        ResultSet rs=null;        String db_driver="com.mysql.jdbc.Driver";        String db_url="jdbc:mysql://localhost:3306/db_friend?characterEncoding=UTF-8";        String db_user="root";        String db_password="";        String sql1="select * from userinfo where username=?";        String sql2="insert into userinfo values(?,?)";        try {            String username=request.getParameter("userName");            String userpass=request.getParameter("password");            Class.forName(db_driver);            conn=DriverManager.getConnection(db_url,db_user,db_password);            prst=conn.prepareStatement(sql1);            prst.setString(1, username);            rs=prst.executeQuery();            if (!rs.next()) {                prst=conn.prepareStatement(sql2);                prst.setString(1, username);                prst.setString(2, userpass);                int count=prst.executeUpdate();                if (count!=0) {                    HttpSession session=request.getSession();                    session.setAttribute("username", username);                    request.setAttribute("msg", "註冊成功!");                    request.getRequestDispatcher("index.jsp").forward(request, response);                                    }else{                    request.setAttribute("msg", "登入失敗,密碼錯誤!");                    request.getRequestDispatcher("error.jsp").forward(request, response);                                    }            }else {                    request.setAttribute("msg", "使用者不存在!");                    request.getRequestDispatcher("error.jsp").forward(request, response);                }        } catch (Exception e) {            // TODO: handle exception            e.printStackTrace();        }finally{            if (rs!=null) {                try {                    rs.close();                } catch (Exception e2) {                    // TODO: handle exception                    e2.printStackTrace();                }            }            if (prst!=null) {                try {                    prst.close();                } catch (Exception e2) {                    // TODO: handle exception                    e2.printStackTrace();                }            }            if (conn!=null) {                try {                    conn.close();                } catch (Exception e2) {                    // TODO: handle exception                    e2.printStackTrace();                }            }            out.close();        }    }}

reg.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>    <h1>新使用者註冊</h1>    <form action="RegServlet" method="post">        <input type="text" name="userName"></br>        <input type="password" name="password"></br>        <input type="submit" id="btn_load">            </form></body></html>

LoginFilter.java

package cn.lonecloud.demo;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.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginFilter implements Filter {    @Override    public void destroy() {        // TODO Auto-generated method stub            }    @Override    public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain) throws IOException, ServletException {        //在過濾器中必須加入下面這兩句話,不然會不能這樣調用下面的方法        HttpServletRequest req=(HttpServletRequest) request;        HttpServletResponse resp=(HttpServletResponse)response;        request.setCharacterEncoding("UTF-8");        String path=req.getServletPath();        HttpSession session=req.getSession();        String username=(String)session.getAttribute("username");        System.out.println(path);        boolean b1=path.endsWith("login.jsp");        boolean b2=path.endsWith("error.jsp");        boolean b3=path.endsWith("LoginServlet");        boolean b4=path.endsWith("RegServlet");        boolean b5=path.endsWith("reg.jsp");        boolean b6=(username!=null);        if (b1||b2||b3||b4||b5||b6) {            chain.doFilter(request, response);        }else {            resp.sendRedirect("error.jsp");        }            }    @Override    public void init(FilterConfig arg0) throws ServletException {        // TODO Auto-generated method stub            }    }

 

myeclispe中向mysql中插入中文資料出現??問題解決辦法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.