Java 插入 MySQL 数据乱码问题

逐步排查

数据库服务默认编码

show variables like 'character%';

看是否有非utf8的属性。修改MySQL配置文件:

[mysqld]
character-set-server=utf8

数据库表字符集

一段测试数据库插入的代码

String Url = "jdbc:mysql://localhost/test?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8";//参数参考MySql连接数据库常用参数及代码示例
String name = "root";//数据库用户名
String psd = "";//数据库密码
String jdbcName = "com.mysql.jdbc.Driver";//连接MySql数据库
String sql = "insert into test values(?,?)";//数据库操作语句(插入)
try {
    Class.forName(jdbcName);//向DriverManager注册自己
    Connection con = DriverManager.getConnection(Url, name, psd);//与数据库建立连接
    PreparedStatement pst = con.prepareStatement(sql);//用来执行SQL语句查询,对sql语句进行预编译处理
    pst.setString(1, "中文1111");
    pst.setInt(2, 123123213);
    pst.executeUpdate();//解释在下
} catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (SQLException e) {//执行与数据库建立连接需要抛出SQL异常
    // TODO Auto-generated catch block
    e.printStackTrace();
}

 406 total views,  4 views today

Revisions

Comments are closed.