查询避免Unknown column ‘xxx’ in ‘where clause’

转自:http://blog.sina.com.cn/s/blog_6870d1e00100k7fo.html


但凡写过sql语句的人估计都曾经碰到过类似于Unknown column ‘xxx’ in ‘where clause’的问题。 单从字面理解,我们很容易得出

列名不存在的结论,但是,很多时候起始并不是由于列名出错造成的。而是由于拼凑sql语句时对字符类型数据没有用引号引起来造成的。


例如:一个hql语句:final String hql = "from ActiveCert ac where ac.issuerName="+issueName";

设置issueName值为ysy,则错误如下:

Unknown column‘ysy′ in ‘where clause’

sql中如果issueName是整型的倒不会出现什么错误,而如果sql中字符串类型必须要包含在引号内。

所以修改hql为:final String hql = "from ActiveCert ac where ac.issuerName='"+issueName+"'";则错误消失。


还有一种可能就是真的列名出错了,这时候先检查表名是否符合,字段名是否符合,在某些系统和软件环境下的大小写检测.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章