Java中的异常SQL异常,使用derby数据库

时间:2013-04-05 15:20:10

标签: java sql derby

以下是我用于从数据库中获取值的代码:

try {

  Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
  connect = DriverManager
      .getConnection("jdbc:derby://localhost:1527/TedW;user=x;password=x;");
  PreparedStatement statement = connect
      .prepareStatement("SELECT * FROM USER");

  resultSet = statement.executeQuery();
  while (resultSet.next()) {
    String user = resultSet.getString("Username");
    String password = resultSet.getString("Password");
    System.out.println("User: " + user);
    System.out.println("ID: " + password);
  }
} catch (Exception e) {
  System.out.println(e);
}

问题是当我运行它时会显示异常:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "USER" at line 1, column 15.

我发现表名“USER”存在问题。当我创建数据库时,我看到了它。这是在德比的amde。以下是代码:

CREATE TABLE "USER"
(
"Id" INT not null primary key generated always as identity (START WITH 1, INCREMENT BY 1),
"Username" VARCHAR(20) NOT NULL,
"Password" VARCHAR(20) NOT NULL

);

我可能在哪里错了?我错过了什么吗?我能从中获得一些见解吗?

感谢。

1 个答案:

答案 0 :(得分:2)

USER是一个保留关键字,您无法像这样命名您的表。检查here