链接完数据库往数据库里插入数据时出现:Incorrect string value: '\xE9\x81\x93\xE5\x85\xB7...' for column 'gclass' at...这样的错误。找了半天发现是数据库的问题。
百度了一下发现是编码的问题,所以我把数据库和所有表的编码都改为utf-8了,简单粗暴。
在终端里输入命令:
alter database Goodsdb character set utf8;
先把数据库Goodsdb的编码改为utf-8
alter table goods convert to character set utf8;
这条命令就是把goods表的编码改为utf-8
这里说一下,上面这条命令是把表和表里所有的属性都改为utf-8编码的,而下面这段仅仅是把表改为utf-8编码,字段没有变。
alter table goods character set utf8;
然后再执行下面这段代码:
//驱动程序名
String drivename="com.mysql.jdbc.Driver";
//要链接的数据库
String url="jdbc:mysql://localhost:3306/Goodsdb";
//用户,密码
String user="root",password="123456";
try {
//import com.mysql.jdbc.Driver;也可以
Class.forName(drivename);
Connection con=DriverManager.getConnection(url,user,password);
if(con.isClosed()) {
JOptionPane.showMessageDialog(null,"没连上啊,小伙子");
System.exit(0);
}
String sql="select * from goods;";
Statement statement=con.createStatement();
ResultSet rs=statement.executeQuery(sql);
rs.next();
System.out.print(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+rs.getString(4));
rs.close();
statement.close();
con.close();
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e.getMessage(),"error",1);
e.printStackTrace();
}
得到输出:
T2019417 道具类 义魂丸 一路走好,你的身体我会好好保存的