我在我的 android 应用程序中创建了我的数据库,但现在我必须用一些数据预先填充它。问题是它有很多数据要放入数据库。有没有办法从文件 .txt 或外部文件 .db 预填充数据库?
4 回答
您可以将数据作为 scv 文件附加到您的应用程序(或从 www 下载),然后解析它们并插入 db 助手的 OnCreate 方法。
public void onCreate(SQLiteDatabase database) {
// create database file
database.execSQL(DB_CREATE);
// load data
AssetManager assetManager = context.getAssets();
try {
InputStream inputStream = assetManager.open("radars_test.csv");
InputStreamReader streamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(streamReader);
String line;
String[] values;
while ((line = bufferedReader.readLine()) != null) {
values = line.split(";");
String speedLimit = (line.length() == 3 ? values[2] : "0");
String insertCommand = String
.format("insert into geofences(longitude, latitude, speed_limit, type, radius, description) values(\"%s\", \"%s\", %s, 0, 200, \"%s\")",
values[0], values[1], speedLimit, values[3]);
database.execSQL(insertCommand);
}
} catch (IOException e) {
Log.e("TBCAE", "Failed to open data input file");
e.printStackTrace();
}
}
.csv 文件必须放在 assets 目录中
你没有说你实际上有什么格式,但是是的,很有可能。使用 destkop SQLite 编辑器并导入 CSV 文件(例如)。大多数 SQLite 编辑器都支持这一点。
然后只需将 .db3 文件复制到您的项目中。
我用这个:
http://sqlitebrowser.sourceforge.net/
另外,请阅读此http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
很棒的帖子在这里。我收藏了很久。
http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
我想它会回答你所有的问题。
最好的方法是使用诸如SQLite Manager for Firefox之类的管理器自行创建数据库。该管理器允许您将带有数据的 Excel 文件(实际上是 CSV)导入数据库。之后,您应该将数据库存储在应用程序的原始文件夹中。然后,您应该创建一个 DataAdapter 来使用游标检索数据。如果您想了解更多详细信息,请随时询问。祝你好运。