【求助】java:向mysql数据库插入数据时中文乱码,但是java文件和数据库都是用UTF-8字

附上代码和结果:importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultS... 附上代码和结果:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class InsertData {

static Connection con;
public static Connection getConnection() { //建立返回值为Connection的方法
try {
Class.forName("com.mysql.jdbc.Driver"); //加载数据库驱动
System.out.println("数据库驱动加载成功");
con = DriverManager
.getConnection(
"jdbc:mysql://localhost:3306/db_test1",
"root", ""); // 获取数据库连接
if (con != null) {
System.out.println("数据库连接成功");
}
} catch (Exception e) {
e.printStackTrace();
}
return con; //按方法要求返回个Connection对象
}

/**
* @param args
*/
public static void main(String[] args) {
con = getConnection(); // 调用数据库连接方法
Statement statement;
try {
statement = con.createStatement(); // 获取Statement对象
for(int i=0;i<3;i++){
statement.execute("insert into tb_student(name,sex,age,salary)values('小红','女',24,5000)"); // 执行添加数据操作
}

System.out.println("student表的所有记录:");
ResultSet res=statement.executeQuery("select * from tb_student"); //查询所有记录
while(res.next()){
int id=res.getInt("id");
String name=res.getString("name");
String sex=res.getString("sex");
int age=res.getInt("age");
int salary=res.getInt("salary");
System.out.println("id:"+id+"\t姓名:"+name+"\t性别:"+sex+"\t\t年龄:"+age+"\t\t工资:"+salary);
}
//关闭连接
res.close();
statement.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}

}

}
展开
 我来答
桂佳0f
推荐于2018-03-29 · TA获得超过882个赞
知道小有建树答主
回答量:1673
采纳率:0%
帮助的人:880万
展开全部

先确认你的数据库字符集设置没有问题,是确认不是认为应该是.

url写成这样没有? 

jdbc:mysql://localhost:3306/数据库名称?characterEncoding=UTF-8


我的是gbk,


还要检查

数据库属性是不是




表选项


百度网友a47f6080e
2013-07-25 · TA获得超过458个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:122万
展开全部
在tomcat里面 配置下你的字符编码!! 因为数据库没有错,java文件也没错,那肯定是server.xml里面的connector这个节点上的字符没有去配
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小李flyknife
2013-07-25 · TA获得超过306个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:171万
展开全部
你用数据库的软件,比如navacat看看,是不是你建表的时候,不是用utf-8的编码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zgb914
2013-07-25 · TA获得超过130个赞
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:222万
展开全部
你这贴出来的只是控制台输出的是乱码,确定插入时,数据库中的就已经是乱码了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hqb19891005
2013-07-25
知道答主
回答量:26
采纳率:0%
帮助的人:20.3万
展开全部
你用show variables like 'char%'这个命令看看你数据库里字符集的设置都是什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式