Connection conn=null;
try {
conn = DbBean.getConnection("com.mysql.jdbc.Driver","jdbc:mysql://localhost:3306/test","root","123");
System.out.println("Connection Success");
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String sql="insert into my values(11,'北京','北京')";
DBOpera.ExeSql(conn, sql);
System.out.println("Insert OK!");

String add=util.getContent("Select add form my t where t.name='北京'",conn); 
System.out.println("+++++"+add);
DBOpera.close(conn);插入没有问题:
Connection Success
ExeSQL:insert into my values(11,'北京','北京')
Insert OK! 但Select的时候 中文变成乱码了。。
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'add form my t where t.name='±±??'' at line 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026)

解决方案 »

  1.   

    show variables like 'char%'; 
      

  2.   

    "character_set_client","gb2312"
    "character_set_connection","gb2312"
    "character_set_database","gbk"
    "character_set_filesystem","binary"
    "character_set_results","gb2312"
    "character_set_server","gbk"
    "character_set_system","utf8"
    "character_sets_dir","C:\\Program Files\\MySQL\\MySQL Server 5.1\\share\\charsets\\"
      

  3.   

    字符集问题,
    SET NAMES GBK
    再插入记录
      

  4.   

     
    插入记录没有问题select 条件带中文就有问题。。
      

  5.   

    SET NAMES GBK
    插入记录、取出记录
      

  6.   

    同一个连接通道 Insert 中文没问题,但select 条件中文,就是乱码。
      

  7.   

    JAVA默认是UTF8的,你数据库服务器端设置为gbk的,建议你修改程序 创建数据库连接的时候 设置为:gbk,或者创建连接之后,先执行:SET NAMES 'gbk';
      

  8.   

    不管是插入还是读取 都要 SET NAMES 'gbk'  
      

  9.   

    是GB2312吧,数据库,网页都设置为gb2312字符集,insert和select之前要"SET NAMES 'gb2312'"
      

  10.   

    桉下贴中的方法检查并贴出你的结果。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码