【发布时间】: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 块中,
因为 而从未执行。您是否尝试调试它?在第一行之后你得到一个有效的连接对象吗?