我的from子句中的语法错误

时间:2016-04-04 20:26:41

标签: java syntax-error sqlexception

我得到这个:
java.sql.SQLException:[Microsoft] [ODBC Microsoft Access驱动程序] FROM子句中的语法错误。 对于我的代码:

ResultSet results = state.executeQuery("SELECT * FROM User" + "WHERE user_name = '" + 
                    txtUser.getText() + "'AND password = '" + txtPass.getText() + "'" );

我已经声明了所有变量,我怀疑错误与结构有关,但我不确定。感谢

1 个答案:

答案 0 :(得分:3)

如果您密切注意此行中的代码:

"SELECT * FROM User" + "WHERE user_name

你可以看到这导致

SELECT * FROM UserWHERE user_name

您需要添加空格。

此外,您可以通过构建这样的语句来打开SQL注入攻击。您应该使用PreparedStatement并使用占位符。您也不需要手动构建语句,这可以帮助您避免这个问题。