【问题标题】:"not Implemented by SQLite JDBC driver"“不是由 SQLite JDBC 驱动程序实现的”
【发布时间】:2016-08-18 08:58:13
【问题描述】:

我有一个包含用户信息的数据库,我想创建一个公共静态来在任何给定时间返回数据库整数,而不必为每个单独的整数创建一个 void,但它给了我这个错误:

0
java.sql.SQLException: not implemented by SQLite JDBC driver
    at org.sqlite.jdbc3.JDBC3PreparedStatement.unused(JDBC3PreparedStatement.java:466)
    at org.sqlite.jdbc3.JDBC3PreparedStatement.executeQuery(JDBC3PreparedStatement.java:506)
    at dysanix.main.checkUserColumnInt(main.java:726)
    at dysanix.main.main(main.java:50)

这是我的代码:

public static int checkUserColumnInt(String column, String user) {
        try {
            Connection connection = DriverManager.getConnection("jdbc:sqlite:Database.db");
            String query = "Select ? from userSettings WHERE user = ?";
            PreparedStatement statement = connection.prepareStatement(query);

            statement.setString(1, column);
            statement.setString(2, user);
            
            ResultSet result = statement.executeQuery(query);
            
            result.next();
            int columnResult = result.getInt(column);
            return columnResult;
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }

有人明白我做错了什么吗?我尝试用 Google 搜索,但更改代码让我从一个错误转移到另一个错误……所以我现在还不确定。

我正在运行 JDBC 驱动 sqlite-jdbc-3.8.11.2.jar

【问题讨论】:

  • 您使用的是哪个 SQLite 驱动程序以及哪个版本?
  • 请注意,在您的 catch 块中, 因为 而从未执行。您是否尝试调试它?在第一行之后你得到一个有效的连接对象吗?

标签: java sql sqlite


【解决方案1】:

PreparedStatement.executeQuery(String sql) 未实现。我猜你只是想打电话给executeQuery()。该查询已由PreparedStatement 定义。

【讨论】:

    猜你喜欢
    • 2016-01-01
    • 2017-11-13
    • 2014-07-30
    • 2011-05-16
    • 1970-01-01
    • 2017-10-24
    • 2019-09-17
    • 2014-09-11
    • 1970-01-01
    相关资源
    最近更新 更多