大佬教程收集整理的这篇文章主要介绍了【玩转SQLite系列】(五)SQLite数据库优化,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
/** * 1.创建或打开数据库连接 **/
private voID openDataBase() {
file dataBasefile = new file(Environment.getExternalStorageDirectory() + "/sqlite",Contacts.DATABASE_name3);
if (!dataBasefile.getParentfile().exists()) {
dataBasefile.mkdirs();
}
sqliteDatabase = sqliteDatabase.openorCreateDatabase(dataBasefile,null);
}
/**** * 2.创建表 */
private voID createtable() {
String sql = "create table " +
"IF NOT EXISTS " +
"user(" +
"ID INTEGER PRIMARY KEY autoINCREMENT," +
"name varchar," +
"age integer)";
sqliteDatabase.execsql(sql);
}
/** * 一般的插入数据,批量插入100条数据 * * @param v */
public voID general(VIEw v) {
long startTime = System.currentTimeMillis();
String table = "user";
for (int i = 0; i < 100; i++) {
ContentValues contentValues = new ContentValues();
contentValues.put("name","张三" + i);
contentValues.put("age",i);
sqliteDatabase.insert(table,null,contentValues);
}
long endTime = System.currentTimeMillis();
String message = "总共耗时" + (endTime - startTimE);
Toast.makeText(this,message,Toast.LENGTH_SHORT).show();
Log.d(Contacts.TAG,messagE);
}
如何进行优化?
优化后的代码
/** * 优化后,批量插入100条数据 * * @param v */
public voID optimize(VIEw v) {
long startTime = System.currentTimeMillis();
String table = "user";
/**开启一个事务**/
sqliteDatabase.begintransaction();
try {
for (int i = 0; i < 100; i++) {
ContentValues contentValues = new ContentValues();
contentValues.put("name","张三" + i);
contentValues.put("age",i);
sqliteDatabase.insertOrThrow(table,contentValues);
}
/**将数据库事务设置为成功**/
sqliteDatabase.settransactionsuccessful();
} catch (Exception E) {
e.printstacktrace();
} finally {
/**结束数据库事务**/
sqliteDatabase.endtransaction();
}
long endTime = System.currentTimeMillis();
String message = "总共耗时" + (endTime - startTimE);
Toast.makeText(this,messagE);
}
以上是大佬教程为你收集整理的【玩转SQLite系列】(五)SQLite数据库优化全部内容,希望文章能够帮你解决【玩转SQLite系列】(五)SQLite数据库优化所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。