[android] 数据库的事务

[android] 数据库的事务,第1张

概述为什么需要事务,保证 *** 作同时成功,最常见的场景银行转账,需要修改一下上一节的数据库进行模拟转账 *** 作,修改数据库表,这时需要用到PersonSQLiteOpenHelper类中的onUpgrade()方

为什么需要事务,保证 *** 作同时成功,最常见的场景银行转账,需要修改一下上一节的数据库进行模拟转账 *** 作,修改数据库表,这时需要用到PersonsqliteOpenHelper类中的onUpgrade()方法,修改一下构造方法中的version,就会回调到onUpgrade()方法,在此方法里面执行修改表的sql语句

 

这个方法只在版本号发生变化的时候调用一次,参数中有sqliteDatabase对象,调用db对象的execsql()方法,传入sql语句 alter  table  person add account varchar(20) ,增加一个字段,把数据库文件导出到桌面上,使用sqlite expert personal 3软件打开。

 

先添加两条数据,添加数据使用db对象的系统API,先new获取ContentValues对象,调用values对象的put()方法,参数是key val,把数据放进去,调用db对象的insert()方法,插入数据。

 

 

使用事务,调用db对象的beginTransaction()方法开启事务,然后一个try catch包裹,try块里执行多条sql语句,调用db对象的setTransactionSuccessful()标记成功,finally块里调用db对象的endTransaction()方法提交或者回滚事务

 

 

Cmd 执行adb shell命令,进入androID系统,cd /data/data/包名/database/,执行sqlite3 persion.db  进入数据库命令行。

测试用例:

 

    /**     * 测试事务     * @throws Exception     */    public voID testTransaction() throws Exception{        PersonsqliteOpenHelper helper =new PersonsqliteOpenHelper(getContext());        sqliteDatabase db=helper.getWritableDatabase();        db.beginTransaction();        try {            db.setTransactionSuccessful();            db.execsql("update person set account=account-100 where ID=7");            db.execsql("update person set account=account+100 where ID=8");                    } finally {            db.endTransaction();        }        db.close();            }

 

总结

以上是内存溢出为你收集整理的[android] 数据库的事务全部内容,希望文章能够帮你解决[android] 数据库的事务所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存