【发布时间】:2017-05-22 15:15:40
【问题描述】:
我有一个查询 SQL 表并将子集保存到 CSV 文件的方法:
public void exportSQL(File outputFile, String c1) throws SQLException, IOException {
csvWrite = new CSVWriter(new FileWriter(outputFile));
curCSV = db.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE col1 = '" + c1 + "'", null);
csvWrite.writeNext(curCSV.getColumnNames());
while (curCSV.moveToNext()) {
String arrStr[] = {curCSV.getString(0), curCSV.getString(1), curCSV.getString(2),
curCSV.getString(3), curCSV.getString(4), curCSV.getString(5),
curCSV.getString(6), curCSV.getString(7), curCSV.getString(8)};
csvWrite.writeNext(arrStr);
}
csvWrite.close();
curCSV.close();
}
这可行,但是,我还想将此查询/子集保存为 sqlite (.db) 文件。
我看到了许多关于将整个数据库复制到另一个 SQLite 文件的问题,但没有找到任何包含仅保存表子集的方法的任何内容。换句话说,我想查询一个表来获取一个游标,然后将该查询/游标的内容写入一个.db 文件
在 Java/Android 中执行此操作的正确方法是什么?
对此有许多相关问题,但它们似乎并未涵盖此特定案例。例如:
- Copying data from one SQLite database to another。该问题是关于将表从一个数据库复制到另一个(现有)数据库。而我有兴趣查询/子集表并将该子集保存到新的(不存在)数据库文件
-
How to write a database to a text file in android。有很多关于将数据库保存到文本文件的问题,但我希望我保存的文件是一个 sqlite
.db文件,并且只将我的特定查询结果包含在一个新表中
【问题讨论】:
-
第一个链接已经包含了您需要的一切。 SQLite 将不存在的文件视为新的空数据库,SELECT 查询可以进行过滤。
标签: java android sqlite android-sqlite