上面两个图是数据库中表的属性,似乎已经全部设置成utf8了,
代码应该也没问题,很头疼,求大神指导!拜托!万分感谢,代码如下
public static final String url = "jdbc:mysql://localhost:3306/test?&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false";
public static final String name = "com.mysql.jdbc.Driver";
public static final String user = "root";
public static final String password = "*********";
public Connection conn = null;
public PreparedStatement pst = null;
public MySQLConnect(String sql) {
try {
Class.forName(name);// 指定连接类型
conn = DriverManager.getConnection(url, user, password);// 获取连接
pst = conn.prepareStatement(sql);// 准备执行语句
} catch (Exception e) {
e.printStackTrace();
}
}
public void close() {
try {
this.conn.close();
this.pst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
static String sql = null;
static MySQLConnect db1 = null;
static ResultSet ret = null;
public static void main(String[] args) {
sql = "select *from test";//SQL语句
db1 = new MySQLConnect(sql);//创建DBHelper对象
try {
ret = db1.pst.executeQuery();//执行语句,得到结果集
while (ret.next()) {
String uid = ret.getString(1);
String ufname = ret.getString(2);
String ulname = ret.getString(3);
String udate = ret.getString(4);
System.out.println(uid + "\t" + ufname + "\t" + ulname + "\t" + udate );
}//显示数据
ret.close();
db1.close();//关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
编码集的问题,数据库和你的java中的编码不一致,首先你要确认你数据库的编码,然后对比,看问题结果
数据库原本是utf-8,连接字符串不要使用useUnicode=true只需要characterEncoding=utf8
可能是你tomcat的字符集问题,修改成utf8即可
你看下你的eclipse中的编码
jdbc:mysql://localhost:3306/test?&characterEncoding=UTF-8