Java连接mysql数据库并插入中文数据显示乱码??

EmpDao.java
package com.cdd;
public class EmpDao {
Connection conn = null;
public Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库驱动加载成功!!");
String url = "jdbc:mysql://localhost:3306/db_database03";
String user = "root";
String passWord = "111";
conn = DriverManager.getConnection(url, user, passWord);
System.out.println("已成功的与MySQL数据库建立连接!!");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public String insertEmp(Emp emp){
conn = getConnection();
try {
PreparedStatement statement = conn.prepareStatement("insert into tb_emp values(null,?,?,?,?,?,?)"); //定义插入员工信息的SQL语句
statement.setString(1, emp.getName()); //设置预处理语句参数值
statement.setInt(2, emp.getAge()); //设置预处理语句参数值
statement.setString(3, emp.getSex());
statement.setString(4, emp.getDept());
statement.setString(5, emp.getPhone());
statement.setString(6, emp.getRemark());
statement.executeUpdate(); //执行插入语句
conn.close(); //关闭数据库连接
return "数据插入成功"; //返回执行结果
} catch (Exception e) {
e.printStackTrace();
return "数据插入失败";
}
}
}

InsertServlet.java
package com.cdd;
public class InsertServlet extends HttpServlet {

public InsertServlet() {
super();
}

public void destroy() {
super.destroy();
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Emp emp = new Emp();
emp.setName(request.getParameter("nameTextfield"));
emp.setAge(Integer.parseInt(request.getParameter("ageTextfield")));
emp.setSex(request.getParameter("sexSelect"));
emp.setDept(request.getParameter("deptTextfield"));
emp.setPhone(request.getParameter("phoneTextfield"));
emp.setRemark(request.getParameter("remarkTextarea"));
EmpDao empDao = new EmpDao();
String message = empDao.insertEmp(emp);
request.setAttribute("message", message);
request.getRequestDispatcher("index.jsp").forward(request, response);
}

public void init() throws ServletException {
}
}
Emp.java和index.jsp就不写了
id为11的那行是通过Java添加的,其它的是通过mysql数据库添加的。

你应该是安装mysql的时候编码你是选择默认的吧。
你可以找到mysql的安装目录MySQL Server 5.0\bin\MySQLInstanceConfig.exe
重新配置下就可以了。一般选择utf-8编码。

再一个如果数据库开始就建立好了。alter database 表名 character set utf8;

  连接数据库设置编码

  jdbc:mysql://地址:3306/数据库名?characterEncoding=utf8
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-04
数据库连接字段改为
jdbc:mysql://localhost:3306/db_database03?useUnicode=true&characterEncoding=utf8

数据库创建的时候
create database db_database03 character set utf8
第2个回答  2013-08-04
将那张表给删了,重新建表,特别要注意数据库的编码,一般情况下用utf-8基本不会有乱码