SQL select查询在我的servlet中不使用变量参数

时间:2013-05-12 12:45:41

标签: sql netbeans jdbc

我正在尝试使用netbeans中的servelet执行以下代码行:

ResultSet rs = stmnt.executeQuery("select * from ZEE.WORDCOUNT where WORD =" + searchTxt);

其中 searchTxt 是字符串变量。

但它说“列'zeeshan'要么不在FROM列表中的任何表中,要么出现在连接规范中,并且不在连接范围内......”。

它真的很好,如果我提供硬编码值而不是变量,如:

ResultSet rs = stmnt.executeQuery("select * from ZEE.WORDCOUNT where WORD= 'zeeshan'");

我没有得到,我错过了什么?

1 个答案:

答案 0 :(得分:1)

您缺少围绕正在构建的sql字符串的单引号。所以这应该有效:

ResultSet rs = stmnt.executeQuery("select * from ZEE.WORDCOUNT where WORD ='" + searchTxt+"'");

请注意,以这种方式构造SQL语句非常危险,因为它会为SQL注入攻击打开您的应用程序。改为使用绑定参数。

这也可以在许多rdbms上更好地缓存已解析的语句。