java - java中不寻常的SQL异常,使用derby数据库

标签 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”存在一些问题。我在创建数据库时看到它是一样的。这是 Derby 中的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

);

我哪里可能错了?我错过了什么吗?我可以深入了解一下吗?

谢谢。

最佳答案

USER 是保留关键字,您不能这样命名您的表。检查here .

关于java - java中不寻常的SQL异常,使用derby数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15837602/

相关文章:

java - 对负 float 文字进行四舍五入 - java

c# - 检索满足选定条件的数据的最佳实践

sql - 按小时间隔计数

SQL 意外舍入 DateTime2 结果

java - 通过网络与 Derby 的嵌入式连接有哪些缺陷?

java - Spring Boot - @Convert不调用convertToDatabaseColumn方法

java - Mapreduce Mapper创建2个键用于化简器计算

java - 使用 java 从 XML 文件中删除节点时出现问题

java - 如果sql查询什么也找不到怎么处理?在java中使用结果集

java - 在 Java Derby 中插入后在触发器中调用 Java 方法