我使用JDBC连接到SQLite数据库:
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:/test.db");
现在我的问题是我无法获得用户版本。我知道我可以使用PRAGMA但是如果我执行:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("PRAGMA user_version;");
然后将关闭检索到的结果集(未找到任何数据集)。
答案 0 :(得分:2)
似乎您在代码中没有问题时遇到问题,因为此代码段可以设置并获取user_version
而不会出现问题:
import java.sql.*;
public class Main {
public static void main(String[] args) throws Exception {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
try(Statement statement = conn.createStatement()) {
statement.execute("PRAGMA user_version = 10;");
}
try(Statement statement = conn.createStatement()) {
try(ResultSet rs = statement.executeQuery("PRAGMA user_version;")) {
System.out.println(rs.getInt(1));
}
}
}
}
Sqlite适配器:
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.15.1</version>
</dependency>