如果定义String sql="select * from book";可以很顺利的查询出来结果。但是如果在sql语句中加入where条件语句就会执行不到想要的结果String sql = "select * from book where b_name = '软件需求工程'"; 我程序是是想用模糊查询的 String key = "软件"; String sql = "select * from book where b_name = '%"+key+"%'";,一直查不到想要结果,就现实验了直接写条件,发现也不行,求高人解答。

解决方案 »

  1.   

    set name 'gbk';http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   

    set  names gbk;试试先了解产生乱码的原理再去解决http://chenling1018.blog.163.com/blog/static/148025420098293558223/
      

  3.   

    我用的mysql front可视化工具,在这里面执行汉字也是可以的,没有一点错误,在程序中就不行了。更正一下问题,模糊查询我把where b_name like '%"+key+"%'误写成where b_name = '%"+key+"%'。
      

  4.   

    在你的程序中先执行一下SQL语句 set name 'gbk';
      

  5.   

    String sql = "select * from book where b_name = '%"+key+"%'";
    楼主如果是用的JDBC 的话,如果是普通的statement,那么查询语句应该是String sql="select * from book where b_name like \"%"+key+"%\"";如果是preparedstatement,那setString(1,"%"+key+"%");
      

  6.   

    获取Connection之后,马上执行set names 'gbk'