android database 相关
以前用database从来都是直接执行,db.execute()。
今天看公司1.0的源码中又学习了一个逻辑,
SecureSQLiteDatabase db = null;
try {
db = mOpenHelper.openDatabase();
db.beginTransaction();
try {
todo 数据操作
};
//db 所要执行的操作
db.update(MstDataEntry.TABLE_NAME, values, whereClause, whereArgs);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
} finally {
mOpenHelper.close();
}
程序执行到endTransaction() 方法时会检查事务的标志是否为成功,
如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,
如果没有调用setTransactionSuccessful() 方法则回滚事务。
这样就能使我们要执行的操作也就是事务被确定执行才返回,并关掉db。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。