最初代码如下,直接执行sql语句,外加事务提升性能:
SQLiteDatabase database = new SQLiteDatabase();
if (database.isOpen())
{
database.beginTransaction();
try {
//sql为insert into tableName (name) values ("test")
database.execSQL(sql);
}
database.setTransactionSuccessful();
} finally {
database.endTransaction();
}
database.close();
}
优化如下:
SQLiteDatabase database = new SQLiteDatabase();
//sql为insert into tableName (name) values (?)
SQLiteStatement sqlListStatment = database.compileStatement(sql);
if (database.isOpen())
{
database.beginTransaction();
try {
//index 为1开始索引,value为入库的值
//bingXXX为插入XXX类型
sqLiteStatement.bindString(index, value);
sqLiteStatement.executeInsert();
}
database.setTransactionSuccessful();
} finally {
database.endTransaction();
}
database.close();
}

本文介绍了一种通过使用预编译的SQL语句和事务来提高SQLite数据库操作性能的方法。优化前后对比展示了如何从直接执行SQL语句转变为使用SQLiteStatement进行参数绑定,并执行插入操作。

被折叠的 条评论
为什么被折叠?



