在Assets文件夾中放入.sql或.db文件實現創建SQlite表的操作
/**
* 讀取數據庫文件(.sql),並執行sql語句,sql文件中不能有註釋等其他語句,只能是純sql語句,單個sql語句不能太長(執行條目在500左),不然會報 too many terms in compound SELECT, 在執行sql時要使用事務來加快執行
* */
private void executeAssetsSQL(SQLiteDatabase db, String fileName) {
BufferedReader in = null;
try {
db.beginTransaction();
in = new BufferedReader(new InputStreamReader(mContext.getAssets()
.open(fileName)));
String line;
StringBuilder buffer = new StringBuilder();
while ((line = in.readLine()) != null) {
buffer.append(line);
if (line.trim().endsWith(";")) {
db.execSQL(buffer.toString.replace(";", ""));
buffer.setLength(0);
}
}
db.setTransactionSuccessful();
} catch (IOException e) {
Log.e("db-error", e.toString());
} finally {
db.endTransaction();
try {
if (in != null)
in.close();
} catch (IOException e) {
Log.e("db-error", e.toString());
}
}
}
或者把生成好的db文件直接拷貝到項目數據庫目錄下,要先使用sqliteDatabse.openOrCreateDatabase(context.getDataBasePath("ss.db").getAbstarctPath(),null);生成一個數據庫文件,把生成的文件導出,然後pc上導入數據到該文件,最後再把該文件放到assets目錄下複製文件到數據庫目錄下,就可正常使用,android自動生成的數據庫會比用其他工具生成的多些東西,不能直接使用其他工具生成的文件