在之前的工作中,遇到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,因此学习起来非常容易。
原文链接:https://www.f2er.com/sqlite/198694.html