public class ToJdbc {
public void setJdbc(String name,String content,long time){
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
PreparedStatement pre = con.prepareStatement("insert into recode(name,content,time) values(?,?,?)");
pre.setString(1, name);
pre.setString(2, content);
Date date = new Date(time);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
pre.setString(3, sdf.format(date));
pre.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}这样的代码,调用过后到了mysql数据库里面的中文全部变成了问号,可是我直接在数据库写中文的话又可以,这是什么情况,请高手帮忙解决一下!
public void setJdbc(String name,String content,long time){
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
PreparedStatement pre = con.prepareStatement("insert into recode(name,content,time) values(?,?,?)");
pre.setString(1, name);
pre.setString(2, content);
Date date = new Date(time);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
pre.setString(3, sdf.format(date));
pre.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}这样的代码,调用过后到了mysql数据库里面的中文全部变成了问号,可是我直接在数据库写中文的话又可以,这是什么情况,请高手帮忙解决一下!
utf-8已经设置了啊 bin文件夹下的MySQLInstanceConfig.exe没有看到..
你的name content 是不是从表单里获取的用户的输入 如果是的话 这样写
比如一个<input type = "text" name = "name">想获取的的话 这样写
String name = new String(request.getParameter("name").getBytes(ISO-8859),"UTF-8");
这个问题我解决了,我问了我老师,
中文处理 数据库要用UTF-8建库见表,
另外,JDBC请求URL地址后要添加一个编码设置:?useUnicode=true&characterEncoding=utf-8
像这样:Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8","root", "");