[英]quick insert SQLite Android
我在Android中學習SQLite。 然后,我嘗試創建插入數據庫的通用方法。 插入緩慢 :
public long addVlues(String tableName, ContentValues cv) {
long result = db.insert(tableName, null, cv);
return result;
}
但是它的方法通用,我可以在需要時使用它。 例:
ContentValues cv = new ContentValues();
cv.put("name", "test");
dao.addVlues("daoTest", cv); //this i calling method addValues
它的代碼好而簡單(對我而言),但速度慢。
波紋管快速插入代碼:
public void addValueTest(String tableName) {
String sql = "insert into "+ tableName + " (id, name) values (?, ?);";
db.beginTransaction();
SQLiteStatement stmt = db.compileStatement(sql);
for (int i = 0; i < 1000; i++) {
stmt.bindString(i, "name");
stmt.clearBindings();
Log.e("qqq", String.valueOf(i));
}
db.setTransactionSuccessful();
db.endTransaction();
}
但是我需要為每個表創建單個方法,這會增加代碼。 我有問題。 如何創建通用的快速插入方法?
我會做這樣的事情:
public void addValueTest(String tableName, String[] values)
{
String sql = "";
if (tableName.equalsIgnoreCase("TableA"))
{
sql = "insert into "+ tableName + " (TableA_FieldA, TableA_FieldB) values (?, ?);";
}
else if (tableName.equalsIgnoreCase("TableB"))
{
sql = "insert into "+ tableName + " (TableB_FieldA, TableB_FieldB, TableB_FieldC) values (?, ?, ?);";
}
//else if ...
//else if ...
//else if ...
//else if ...
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL(sql, values);
db.close();
}
表和字段名稱顯然僅是示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.