将SqLite数据库中的数据共享给其他应用增删改查

来源:互联网 发布:linux echo输出到文件 编辑:程序博客网 时间:2024/05/22 03:38

    在之前的工作中,遇到SQLite数据库的相关代码,基本是看着就有些晕,花了一天时间,学习加巩固,让我对SQLite数据库,事务处理(转账),ContentProvider有了很深的认识,自己动手写了多便,代码结构一次比一次清晰。工作时,负责搭建项目结构的人,经常趁着改版,优化项目结构,相信是每一次做完后,都会对代码有一些优化的想法,代码的优化本就是循序渐进的过程。

    首先看下以下两个应用中的代码结构:

            1、ContentProvider提供共享数据应用

 

            2、ContentResolver访问共享的数据,并增删改查

 

          SQLite数据库中主要是通过执行sql语句,来完成表的创建及数据的增删改查,我在TestDB.java中都已经有测试通过。

   在执行sql语句时,有两种方式(delete为例,删除person表中id1的用户)

    方式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

0 0
原创粉丝点击