将SqLite数据库中的数据共享给其他应用增删改查
在之前的工作中,遇到SQLite数据库的相关代码,基本是看着就有些晕,花了一天时间,学习加巩固,让我对SQLite数据库,事务处理(转账),ContentProvider有了很深的认识,自己动手写了多便,代码结构一次比一次清晰。工作时,负责搭建项目结构的人,经常趁着改版,优化项目结构,相信是每一次做完后,都会对代码有一些优化的想法,代码的优化本就是循序渐进的过程。 首先看下以下两个应用中的代码结构: 1、ContentProvider提供共享数据应用
2、用ContentResolver访问共享的数据,并增删改查
SQLite数据库中主要是通过执行sql语句,来完成表的创建及数据的增删改查,我在TestDB.java中都已经有测试通过。 在执行sql语句时,有两种方式(以delete为例,删除person表中id为1的用户) 方式1:
SQLiteDatabase db = helper.getWritableDatabase(); db.execSQL(delete from person where id = ?,new Object[]{1});
方式2:
SQLiteDatabase db = helper.getWritableDatabase(); db.delete(“person”,“id = ?”,new String[]{id + ””});
方式2是安卓系统系统的数据库删除方式,它已经帮我们拼装好了要执行的sql语句,我们只用将变量的值往里添加即可。我觉得方式2非常好用,因此在例子中均使用方式2来示范。 ContentProvider提供的数据,在其他应用中用ContentResolver来访问,并且其Uri必须以contnet://开头,不然在访问的过程中会一直出现错误的参数类型的崩溃。 因在做访问本地音乐库时已经使用过ContentResolver,因此学习起来非常容易。 直接下载demo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |