在MySQL中,设置的字段的属性为char,字符编码为GB2312,在java代码里查找却匹配不上!
select * from tablename where name=‘林冲';表中有这条记录!
这个语句查询出来是一个空集!
为什么?

解决方案 »

  1.   

    直接在mySQL中查一下看看
    == 思想重于技巧 ==
      

  2.   

    应该是java那边的问题了,我没有发生过楼主说的情况
      

  3.   

    字段的属性为char(宽度),这个宽度为多少?
    select * from tablename where name=‘林冲', 这里左引号和右引号也不一样。
    另外,有可能跟字符集有关。你在你的java程序里获取连接以后,立即调用
    "set names 'gbk'" 
    再试试那个查询看看。
      

  4.   

    宽度char(5),字符集设置的是GB2312!
    引号是笔误,SQL语句没有写错!
      

  5.   

    宽度char(5),字符集设置的是GB2312! 
    引号是笔误,SQL语句没有写错!
    setnames(GBK)这个方法怎么使用?是哪个类的?
      

  6.   

    你可以直接在mysql里执行语句试试,如果也查不出,那是你的数据有问题,如果可以在数据库中查出,就是java的问题了。setnames(GBK)不是个方法,也不是哪个类的,不是这样写的,它是个mysql的设置语句,set names 'gbk';你可以在执行select前先执行这个语句,在执行select。只不过我觉得可能没用。java的应用程序字符集也不知道怎么设。
      

  7.   

    哦,set names'gbk'这个方法,后来我查到了也试了试,还是不行!
    在SQL  Editor中查询可以查出来!
    但是在java程序中就查不出来了,
    若是查英文记录就可以查出来,
    应该是字符编码的问题!
    不知如何啊!!