您的位置:首页 > 移动开发 > Android开发

android sqlite的SqliteDataBase.insert()方法,以及如何在事务管理中使用

2015-10-14 22:06 567 查看
1.db.insert()方法,方法中已经写了try catch块,会捕捉SqliteException,因此如果直接用

db.beginTransaction();

try{

db.insert(...);

db.setTransactionSuccessful();

}finally{

db.endtransaction();

}

这样的代码去开启事务,会导致无论是否插入成功,代码一定会执行到db.setTransactionSuccessful();这一句。

正确的方法是:

由于insert()方法会返回long型数值,这个值是插入成功以后的id(虽然事务尚未提交,但是已经有id了);而如果插入失败,则会返回-1,因此判断返回值即可管理事务。

代码如下:

db.beginTransaction();

try{

if(db.insert(..)==-1){

throw new Exception();

}

db.setTransactionSuccessful();

}finally{

db.endtransaction();

}

db.setTransactionSuccessful();

db.beginTransaction();

try{

db.insert(...);

db.setTransactionSuccessful();

}finally{

db.endtransaction();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: