我有一个带有已使用 SqlCipher (net.sqlcipher.database.SQLiteOpenHelper) 加密的数据库的 Android 项目。这一切正常,我可以通过桌面上的 DB 浏览器访问解密的数据。
但是,我有一个服务器端 Maven 项目(可以是任何项目,但这是一个 Maven 项目),它必须进一步处理数据。
我的问题是:如何解密数据以在 Java/Maven 项目中进行处理?
举一个代码示例,我目前这样访问数据库:
try {
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Username\\Desktop\\"+path);
}
catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
return c;
我使用这样的结果集:
ResultSet myGet(Connection db, String sql){
try {
return db.createStatement().executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
在加密数据库之前,上面的方法可以工作,但现在显然不行。我收到以下错误:
org.sqlite.SQLiteException: [SQLITE_NOTADB] File opened that is not a database file (file is not a database)