【问题标题】:I keep getting the error message org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (near "=": syntax error)我不断收到错误消息 org.sqlite.SQLiteException: [SQLITE_ERROR] SQL 错误或缺少数据库(靠近“=”:语法错误)
【发布时间】:2022-06-15 00:11:39
【问题描述】:

我做错了什么? 我不知道为什么它不会拾取 myid 变量

我希望它只拾取一条记录并显示回来

公共静态无效 CurrentStatus() {

    try {
        Connection conn = DriverManager.getConnection(DatabaseConstants.Database);
        Statement statement = conn.createStatement();

        System.out.println("Enter your ID: ");
        Scanner id = new Scanner(System.in);
        int myid = id.nextInt();


        ResultSet status = statement.executeQuery("SELECT * FROM " + DatabaseConstants.Table_Troops
                + "WHERE" + DatabaseConstants.Column_ID  + "= " + myid );
        while (status.next()) {
            System.out.println("Your current status is:" + "\n"
                    + "Health: " + status.getInt(DatabaseConstants.Column_Health) + "\n"
                    + "Supplies: " + status.getInt(DatabaseConstants.Column_Supplies) + "\n"
                    + "Ammunition: " + status.getInt(DatabaseConstants.Column_Ammo) + "\n"
                    + "Location: " + status.getInt(DatabaseConstants.Column_Supplies) + "\n");
        }
        //
        statement.close();
        conn.close();

    } catch (SQLException e) {
        System.out.println("Database error: " + e.getMessage());
        e.printStackTrace(); // see location of errors
    }

    DatabaseConstants.showMenu();
}

【问题讨论】:

  • 你调试了吗?您是否检查过您实际构建的查询?我想你会在WHERE' and before =` 之后找到一个缺失的空格。这看起来像是一个查询,您知道要从哪个表中选择,所以我不明白为什么要这样构建它。但无论如何你都应该为搜索的值参数化

标签: java sql


【解决方案1】:

您可能需要在 WHERE 周围留出空格。像这样的:

ResultSet status = statement.executeQuery("SELECT * FROM " + DatabaseConstants.Table_Troops
                + " WHERE " + DatabaseConstants.Column_ID  + "= " + myid );

此外,当您仍在跟踪代码中的错误时,捕获所有异常会很有帮助:

} catch (Exception e) {

【讨论】:

  • 等号也一样,也少了一个空格
猜你喜欢
  • 2021-07-31
  • 2013-06-01
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 2018-01-19
  • 2016-08-14
  • 1970-01-01
  • 2023-01-24
相关资源
最近更新 更多