随着我在Java中慢慢找到自己的方式,我在执行程序时遇到了运行时错误。 我正在选择语句中进行此编码… 我收到一个使用“?”的错误代码这种方式不接受MariaDB语法!! 如何解决这个问题……。 请注意,用户名在编中定义为变量。
谢谢
这是我的代码:
String sql = "select Username , Userpassword from Users where Username where Username = ?";
statement = con.prepareStatement(sql);
statement.setString(1, UserName);
statement.executeQuery(sql);
while (statement.getResultSet().next()){
// ...
答案 0 :(得分:2)
where Username where Username = ?
您的SQL查询无效。您有两次where
子句。
答案 1 :(得分:1)
您的代码有两个问题,我可以看到。首先,正如@Michael指出的那样,您有两个WHERE
子句。也许这只是一个复制错误,或者这完全是您的代码。无论哪种情况,都是错误的,您的查询应该只有一个WHERE
子句。另一个问题是您正在执行以下调用以执行查询:
statement.executeQuery(sql);
PreparedStatement#executeQuery
不接受任何参数;只需不带任何参数即可调用它。因此,这是我为您提供的建议:
String sql = "SELECT Username, Userpassword FROM Users WHERE Username = ?";
statement = con.prepareStatement(sql);
statement.setString(1, UserName);
ResultSet rs = statement.executeQuery();
while (rs.next()) {
// process a row
}