Android数据库之基本概念(上)

1.Android数据库简介

Android通过结合使用SQLite数据库和Content Provider,提供了结构化数据的持久功能。

SQLite数据库可以通过一种结构化的、易于管理的方法来存储应用程序数据。Android提供了一个完整的SQLite关系数据库的库文件。每个应用程序都可以创建自己的数据库,并对这个数据库拥有完全的控制权。

Android数据库存储在设备上的/data/data/<package name>/database文件夹中,所有的数据库都是私有的,只能被创建他们的应用程序访问。

2.Content Provider简介

Content Provider提供了一种基于使用“content://”模式的简单URI寻址模型来发布和使用数据的接口,是安卓四大组件之一。

创建了底层数据存储之后,就可以使用Content Provider,它通过底层数据源执行了一致的抽象,使得应用程序不必过于依赖某个数据源。

使用它可以实现应用程序间数据的共享,比如我们的应用可以调取短信或联系人的操作。当然我们也可以发布我们自己的Content Provider,这样别人就可以在他们的应用中对我们的数据库进行CRUD的操作了。

具体使用方法,后期会有专题进行介绍。

3.SQLite简介

SQLite是一种流行的关系数据库管理系统(Relational Database Manager System)。特征为:开源 符合标准 轻量级。它已经被实现为简洁的C语言,并且成为Android软件栈的一部分。

通过作为一个库实现,而不是作为一个独立的进程不断执行,每个SQLite数据库成为创建它的应用程序的完整部分。这样做能减少应用程序的外部依赖性、最小化延迟并简化事务锁定和同步。

SQLite非常可靠,是许多消费类电子产品(如很多MP3播放器和智能手机)首选的数据库系统。

4.Content Value和Cursor

Content Value用来向数据库中的表插入新的行。每一个ContentValues对象都将一个表行表示为列名到值得映射。

数据库查询作为Cursor对象返回。Cursor是底层数据中的结果集的指针,他没有提取和返回结果值得副本。

Cursor的常用方法:

cursor.moveToFirst();//把游标移动到查询结果中的第一行
        cursor.moveToNext();//把游标移动到下一行
        cursor.moveToLast();//把游标移动到最后一行
        cursor.moveToPrevious();//把游标往前移动一行
        cursor.getCount();//获取结果集的数量
        cursor.getColumnIndexOrThrow("");//根据指定列名返回其索引,从0开始,没有则抛出异常
        cursor.getColumnNames();//获取当前cursor中的所有列名的字符串数据
        cursor.getColumnName(1);//根据索引返回列名
        cursor.moveToPosition(1);//把游标移动到指定行
        cursor.getPosition();//获取当前游标的位置
5.SQLiteOpenHelper简介

SQLiteOpenHelper是一个抽象类,用于实现创建、打开和升级数据库。

SQLiteOpenHelper会在成功打开数据库实例后再缓存它们,所以我们可以在要执行查询或事务前请求打开数据库,除非我们不再需要使用数据库,否则无需手动关闭他们。
数据库操作特别是打开和创建的额时候需要很长的时间才能完成,因此为了确保这些操作不会影响用户体验,应使数据库操作异步执行。

一般,在我们的应用中需要定义一个类继承SQLiteOpenhelper类,通过重写其构造函数 onCreate onUpgrade方法来分别处理创建数据库和升级到新版本数据库。


一些数据库基本的概念就简单介绍到这了,下一篇实战代码介绍一下android数据库的增删改查操作。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值