Java中的Select语句以错误终止

时间:2018-09-11 10:28:45

标签: java

随着我在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()){
  // ...

2 个答案:

答案 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
}