首先推荐一款操作sqlite工具
https://sqlitestudio.pl/index.rvt
支持中文
你可以用这个工具从*.db文件导出*.sql文件
进入正题************
关键代码:
/**
* 读取数据库文件(.sql),并执行sql语句
* @param db
* @param dbfilepath assets下的*.sql文件路径,比如 acupointsdb/acupoints.sql
*/
public void executeAssetsSQL(SQLiteDatabase db, String dbfilepath) {
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(getAssets().open(dbfilepath)));
System.out.println("路径:" + dbfilepath);
String line;
String buffer = "";
//开启事务
db.beginTransaction();
while ((line = in.readLine()) != null) {
buffer += line;
if (line.trim().endsWith(";")) {
db.execSQL(buffer.replace(";", ""));
buffer = "";
}
}
//设置事务标志为成功,当结束事务时就会提交事务
db.setTransactionSuccessful();
} catch (Exception e) {
Log.e("db-error", e.toString());
} finally {
//事务结束
db.endTransaction();
try {
if (in != null)
in.close();
} catch (Exception e) {
Log.e("db-error", e.toString());
}
}
}
比如,我的*.sql文件位于assets/acupointsdb/acupoints.sql
使用代码:
MyApplication.getInstance().executeAssetsSQL(db, "acupointsdb/acupoints.sql");