import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Demo1 { /** * @param args * @throws SQLException * @throws ClassNotFoundException */ public static void main(String[] args) throws SQLException, ClassNotFoundException { // TODO Auto-generated method stub Class.forName("com.mysql.jdbc.Driver"); //connection中url写法,可以避免中文乱码问题 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/student?user=root&password=910429&useUnicode=true&characterEncoding=utf-8"); Statement stat=conn.createStatement(); String sql="insert into stu values('10','网')"; stat.executeUpdate(sql); String sql1="select * from stu"; ResultSet rs=stat.executeQuery(sql1); while(rs.next()) { System.out.println(rs.getString("id")+" "+rs.getString("name")); } } }
这是代码中控制输入输出汉字乱码的控制,但是在用mysql命令窗口(黑框)时,显示和输入都出现了汉字乱码问题,其解决方法有:
1:在安装sql时,有一项设置是对编码方式的控制,选中之后再选择gbk/gb2312;
2:如果安装的时候使用的是默认的(latin1),需要修改mysql目录下的my.ini配置文件,打开之后,将所有的default-character-set设置成gbk/gb2312,配置文件中需要修改的有两处地方,但不一定都是default-character-set,有的是对serve设置的;
3:安装过mysql之后,很多人不是直接用的mysql命令窗口,而是用的图形化的第三方工具,但是应该注意的是,在那个工具建数据库的时候应该注意设置其编码方式,很多是默认的,导致用该环境查询时出现乱码问题,插入时也是乱码,所以从mysql命令窗口无论是插入还是查询都是乱码的问题;