jdbc插入mysql中文乱码的问题

kgblue 2012-09-09 10:32:26
public class Test {

public static void main(String[] args) {
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
try {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String connStr = "jdbc:mysql://localhost:3306?useUnicode=true&characterEncoding=UTF-8";
String dbUser = "root";
String dbPassword = "123456";
conn = DriverManager.getConnection(connStr, dbUser, dbPassword);
if (conn != null) {
System.out.println("连接成功");
stat = conn.createStatement();
stat.execute("drop database test_db");
stat.execute("create database test_db CHARACTER SET UTF8");
stat.execute("use test_db");
stat.execute("create table if not exists test_info( role_id int primary key auto_increment, role_name varchar(50) not null)default charset=UTF8");
stat.execute("insert into test_info(role_name) values ('测试')");
rs = stat.executeQuery("select * from test_info");
while (rs.next()) {
System.out.println(rs.getInt("role_id")+" : "+rs.getString("role_name"));
}
} else {
System.out.println("连接失败");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
rs.close();
stat.close();
conn.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
麻烦兄弟们看看,为什么上面一段代码查询出来的会是乱码呢?我在数据库中查询也是乱码。我数据库使用的编码是UTF-8的,连接字符串、数据库、表,都是使用的UTF-8。
...全文
177 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
旷逍遥 2012-09-14
  • 打赏
  • 举报
回复
JDBC连接的URL加上编码参数
kgblue 2012-09-09
  • 打赏
  • 举报
回复
insert into test_info(role_name) values ('测试')这一句话,如果将其放在mysql工具里面执行,只用jdbc查询的话,是可以查询出来中文的,但是如果将这句话用jdbc来插入的话,就是乱码。使用set names gbk;后编码如下:
+--------------------------+------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\GreenTools\MySQL Server 6.0\share\charsets\ |
+--------------------------+------------------------------------------------+
kgblue 2012-09-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

set names gbk;
[/Quote]
哥们,不行
xiaoxie_advent 2012-09-09
  • 打赏
  • 举报
回复
set names gbk;

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧