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基本不会有乱码

...中插入中文数据时,在cmd中查询显示的是乱码
你这个是因为修改了默认字符集后插入数据 造成前后不统一的问题 重新设置一遍就没问题了 ① 首先把MySQL的服务停掉 在运行窗口输入:net stop mysql ② 把服务器和客户端的字符集改成自己想用的字符集:GB2312或是utf8等……具体操作为:打开mysql安装目录下的my.ini;找到default-character-set,将其...

mysql数据库中存进的是中文,为什么查出来的乱码?
一、转码失败在数据写入到表的过程中转码失败,数据库端也没有进行恰当的处理,导致存放在表里的数据乱码。针对这种情况,前几篇文章介绍过客户端发送请求到服务端。其中任意一个编码不一致,都会导致表里的数据存入不正确的编码而产生乱码。比如下面简单一条语句:set @a = "文本字符串";insert into ...

数据库写入的中文变成乱码如何解决?
首先写一个数据库test,然后写一个表table,最后插入你想要写入的字段"工资"。出现了了乱码。就得1. 启动MySQL,在里面输入 ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin,将test数据库的编码设为utf8。2. 修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 ...

java中利用JDBC向MySql数据库中插入中文出现乱码???,求解决办法_百度知 ...
你应该是安装mysql的时候编码你是选择默认的吧。你可以找到mysql的安装目录MySQL Server 5.0\\bin\\MySQLInstanceConfig.exe 重新配置下就可以了。一般选择utf-8编码。再一个如果数据库开始就建立好了。alter database 表名 character set utf8;连接数据库设置编码 jdbc:mysql:\/\/地址:3306\/数据库名?charact...

【求助】java:向mysql数据库插入数据时中文乱码,但是java文件和数据库都...
先确认你的数据库字符集设置没有问题,是确认不是认为应该是.url写成这样没有?jdbc:mysql:\/\/localhost:3306\/数据库名称?characterEncoding=UTF-8 我的是gbk,还要检查 数据库属性是不是 表选项

java 向数据库写入汉字的时候出现乱码
可能原因一:数据库不支持中文,或者是数据库编码格式和java代码编码格式不一致,这种情况需要修改数据库编码格式:ALTER SYSTEM DISABLE RESTRICTED SESSION;改完编码后执行sql> conn \/ as sysdba;sql> shutdown immediate;database closed.database dismounted.oracle instance shut down.sql> startup mount...

mysql数据库的汉字出现乱码
在处理MySQL数据库的汉字出现乱码问题时,首先需要确认所使用的客户端是否支持UTF-8编码格式。如果答案是肯定的,那么在建立数据库时,务必设置编码格式为UTF-8。这样做可以确保数据库正确识别并存储包含汉字的字符。然而,如果客户端使用的是GBK编码,那么在Windows系统下操作通常不会遇到乱码问题。GBK是一种...

MySql中插入中文显示的是乱码
出现乱码肯定是你现在用的编码混乱造成的 解决办法:第一步 先改数据库编码 先修改你的数据库,如果你页面用的是UTF-8编码那么你数据库内的编码也需要设置为UTF-8,每个字段都需要设置.要保持内外一致,你可以用Navicat for MySQL工具,这个工具里能看得很清除,如果表\\字段很多的话你可以导出SQL语句,...

...工具eclipse写java程序,通过jdbc将数据写入MySQL中,但是在Navicat显...
useUnicode\\=true&characterEncoding\\=UTF-8 注意最后边的编码再有,就是数据库的编码格式设置了 1、查看连接属性,将编码格式设置为UTF-8 2、查看数据库属性,将编码格式设置为UTF-8 3、查看具体的表的属性,将编码格式设置为UTF-8 4、查看具体字段属性,将编码格式设置为UTF-8 5...

mysql数据显示乱码,数据插入报错怎么办?
<%@ page contentType="text\/html;charset=utf-8" language="java" %> 2、数据库乱码 这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,解决方法如下:在数据库连接字符串中加入编码字符集 String Url="jdbc:mysql:\/\/localhost\/digitgulf?user=root&password=root&useUnicode=true&...

相似回答