通过JDBC连接获取SQLite用户版本

时间:2017-01-02 19:59:20

标签: java sqlite jdbc

我使用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;");

然后将关闭检索到的结果集(未找到任何数据集)。

1 个答案:

答案 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>