java - 将游戏分数存储到sqlite数据库java中

标签 java sqlite

我试图将游戏得分存储在 SQLite 数据库中。我在 DB Browser 中创建了一个表 SCORE 和字段 HIGHSCORE。在 Game 类中,我在游戏结束后调用以下方法

private void Add(int highScore) {
    try {
        Class.forName("org.sqlite.JDBC");
        c = DriverManager.getConnection("jdbc:sqlite:score.db");
        c.setAutoCommit(false);
        stmt = c.createStatement();
        String sql = " INSERT INTO SCORE (HIGHSCORE) " +
                "VALUES (highScore);"+highScore;
        stmt.executeUpdate(sql);
        stmt.close();
        c.close();
    } catch (Exception e) {
        System.err.println(e.getClass().getName() + ": " + e.getMessage());
        System.exit(0);
    }
    System.out.println("Score registred");
}

这是错误:java.sql.SQLException:没有这样的列:highScore

最佳答案

您没有正确传递参数。
更改为:

    Class.forName("org.sqlite.JDBC");
    c = DriverManager.getConnection("jdbc:sqlite:score.db");
    c.setAutoCommit(false);
    String sql = "INSERT INTO SCORE (HIGHSCORE) VALUES (?);";
    PreparedStatement stmt = c.prepareStatement(sql);
    stmt.setInt(1, highScore);
    stmt.executeUpdate(sql);
    stmt.close();
    c.close();

这样就可以将参数highScore传递给sql语句。

关于java - 将游戏分数存储到sqlite数据库java中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56245879/

相关文章:

GUI 类中的 Java 图像

python - 使用 Python 更新 SQLite 数据库中的行

java - 使用 @ImportResource 注释获取对 ApplicationContext 的引用?

java - Android手写识别库

java - 如何使用接口(interface)实例属性序列化类?得到 NotSerializableException

java - 我们可以通过多少种方式在 6 次传球/投篮中至少得分 6?

sqlite - 是否有任何选项可以为 Web 构建运行 SQLite Flutter?

linux - 根据 IDRow 生成多个 csv 文件

sqlite - 在测试套件之前迁移内存 sqlite 中的数据库

sqlite - 编译时 Microsoft 通用应用程序包错误