1

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

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'");

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

4

1 回答 1

1

您正在构建的 sql 字符串周围缺少单引号。所以这应该工作:

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

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

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

于 2013-05-12T12:49:21.707 回答