http://blog.csdn.net/qq_16103331/article/details/50843947
设置回滚,当出现异常的时候,让数据回到最初的状态
代码分析: 首先调用SQLiteDatabase的beginTransaction()方法来开启一个事务,然后在一个异常捕获的代码块去执行具体的数据库操作,当所有的操作都完成后,调用 setTransactionSuccessful()表示事务已经执行成功了, 最后在finally代码块中调用endTransaction()来结束事务,在删除旧数据的操作过程完成后手动抛出一个NullPointerException,这样添加数据的代码就执行不到了不过由于事务的存在,中途出现异常导致事务的失败,旧的数据删不掉,删去手动抛出异常的代码,数据就会更新 看这一篇前,建议看看上一篇 replaceButton.setOnClickListener(new OnClickListener(){ public void onClick(View v){ SQLiteDatabase db=dbHelper.getWritableDatabase(); db.beginTransaction(); // 开启事务 try{ db.delete(“Book”, null, null); if(true){ //在这里手动抛出一个异常,让事务失败 throw new NullPointerException(); } ContentValues values=new ContentValues(); values.put(“name”, “Game of Thrones”); values.put(“author”, “George Martin”); values.put(“pages”, “720”); values.put(“price”, “20.87”); db.insert(“Book”, null, values); db.setTransactionSuccessful(); //事务已经执行成功 }catch(Exception e){ e.printStackTrace(); }finally{ db.endTransaction(); //结束事务 } } });