我在我的Android应用程序中创建了我的数据库,但现在我必须用一些数据预先填充它。问题是它有很多数据要放在数据库中。有没有办法从文件.txt或外部文件.db?
预先填充数据库答案 0 :(得分:2)
您可以将数据附加到应用程序(或从www下载),就像scv文件一样,然后解析它们并插入db helper的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文件必须放在资产目录
中答案 1 :(得分:0)
你没有说出你实际拥有的格式,但是很可能。使用destkop SQLite编辑器并导入CSV文件(例如)。大多数SQLite编辑都支持这一点。
然后只需将.db3文件复制到您的项目中即可。
我用这个:
http://sqlitebrowser.sourceforge.net/
另请阅读此http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
答案 2 :(得分:0)
这里很棒的帖子。我把它书签了很长时间。
http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
我认为它会回答你所有的问题。
答案 3 :(得分:0)
最好的方法是使用像SQLite Manager for Firefox这样的经理自己创建数据库。此管理器允许您将包含数据的Excel文件(实际上是CSV)导入数据库。之后,您应该将数据库存储在应用程序的原始文件夹中。然后,您应该创建一个DataAdapter以使用游标检索数据。如果您想了解更多详情,请不要犹豫。祝好运。