用java往MySQL里面插入一条记录,结果插入的字符全部不显示,只有问号
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStateme...
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DFV {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");//指定连接类型
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/immoc","root", "root");//获取连接
String sql="insert into student (username,sex) values(?,?)";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setObject(1,"李雷");
ps.setObject(2,"男");
System.out.println("插入一条记录");
ps.execute();
} catch (Exception e) {
e.printStackTrace();
}
} }
如果我把代码里面的“李雷”。“男”改成英文数据库就可以正常显示英文 展开
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DFV {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");//指定连接类型
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/immoc","root", "root");//获取连接
String sql="insert into student (username,sex) values(?,?)";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setObject(1,"李雷");
ps.setObject(2,"男");
System.out.println("插入一条记录");
ps.execute();
} catch (Exception e) {
e.printStackTrace();
}
} }
如果我把代码里面的“李雷”。“男”改成英文数据库就可以正常显示英文 展开
展开全部
那是因为在Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/immoc","root", "root");中没有设置编码格式,导致插入数据的时候才产生乱码。
可以将这句话修改为:Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/immoc?useUnicode=true&characterEncoding=utf8","root", "root"); 你再试试看
追问
数据库跟eclipse都是utf-8的编码格式,我检查过了,然后在connetion那里加上了编码格式也还是不行
展开全部
一看就是编码错误,你看看是你代码和你数据库的编码是不是一致的,还有获取Connection 的连接地址你给加上编码试试
更多追问追答
追问
数据库跟eclipse都是utf-8的编码格式,我检查过了,然后在connetion那里加上了编码格式也还是不行
追答
把setObject 改成setString试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编码问题。你把你的Myeclipse的编码设置成UTF-8
追问
eclipse的编码格式换成UTF-8后,eclipse里面的中文都变成了乱码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
插入的数据类型不对,
ps.setString 试试
ps.setString 试试
追问
ps.setObject()是通用的,不管是String型还是int型,只要用了Object就都能用。我这个问题应该还编码格式的问题。但是不知道错在哪
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编码格式不一致
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询