java - SQLException : Column AD not in specified tables - column AD never specified

标签 java sql

我尝试创建一个PreparedStatement:

stmt = conn.prepareStatement("SELECT POLBRP, POLTYP, POLNOP, INCPTP, TRMTHP, " +
            "CLTKYP , CANDTP, POLSTP, EXPRYP, OINCPP, CANRNP, PAYMDP,
            KCNFLP, KCRTSP, KACADP, KSCHMP, EXPRYP FROM " 
            + POLHDR + " WHERE POLNOP = " + idNumber + 
            " AND POLBRP = " + branch + " AND POLTYP = " + product + 
            " AND OINCPP <= "+date );

这会引发 SQLException:[SQL0206] 列 AD 不在指定的表中。

我不知道它从哪里获取 AD 列,因为我从未在 select 子句中指定它(除非我完全盲目和愚蠢)

有人可以帮忙吗?

最佳答案

如果你的变量是字符串,例如分支

" AND POLBRP = " + branch + " ...

然后你忘了引用这些值

" AND POLBRP = '" + branch + "' ...

但真正的解决方案是使用占位符

... AND POLBRP = ? ...

这将一劳永逸地防止此类问题,这就是PreparedStatement的设计目的

关于java - SQLException : Column AD not in specified tables - column AD never specified,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14606834/

相关文章:

sql - 如何从文本文件执行 SQL 查询

sql - 多值参数截断

java - 代码优化导致执行速度变慢 - 需要解释

java - Watson Natural Language Understanding Java 401 - 未授权

sql - 使用GROUP BY的SQLite更新

SQL Server - sp_procoption 用参数标记过程

sql - 使用日期字段的月份部分返回字符串

java - 如何修复 'Horizontal swiping between ViewPager tabs' ?

java - 为什么线程会在我的 actionListener 实现中卡住我的代码?

java - 静态助手中的通用类型工厂