我在一个DAO类中做数据库查询,其中的query函数我简写如下
public ArrayList query(String strCityName) {
...
//sql语句
String strSql="SELECT 省份, 城市, 邮编, 区号 FROM chinapostalcode WHERE 城市 LIKE " + strCityName;
...
}
这个语句做查询时显示有错误异常,可我把这条语句放在mysql中做查询时是正确可以获得查询结果的,比如:
SELECT 省份, 城市, 邮编, 区号 FROM chinapostalcode WHERE 城市 LIKE 宿迁我用的是mysql数据库,其中“城市”这一列数据类型为varchar,是不是strCityName与mysql数据库中的varchar数据类型不相符的原因?怎么改呢?

解决方案 »

  1.   

    首先varchar对应的就是String,然后Like模糊查询要在查询字符串哪里加%,例如%strCityName%。然后把你的异常贴出来看看
      

  2.   

    看日志打出的sql语句,看执行的sql语句编码是否有问题.
    (表字段用中文 你真行)
      

  3.   

    知道mysql对中文支持不太好,那怎样能改进这个缺陷呢?就只能单纯的把表字段都改为英文?
      

  4.   

    SELECT 省份, 城市, 邮编, 区号 FROM chinapostalcode WHERE 城市 LIKE 宿迁like不用匹配符就是=的效果 不会报错 只是可能没有结果但是你宿迁没有加引号 这条语句才会报错的
      

  5.   

    SELECT 省份, 城市, 邮编, 区号 FROM chinapostalcode WHERE 城市 LIKE '宿迁'