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数据库的增删改查操作。
Android数据库之基本概念(上)的更多相关文章
- Android数据库信息显示在listview上
Key Points: 1.使用SimpleCursorAdapter将Android数据库信息显示在listview上 adapter = new SimpleCursorAdapter(this, ...
- Android数据库使用指南(上)
前言Android上的数据库是sqlite,虽然这个数据库是轻量级的,但是储存的东西可不少,sqlite官方表示理论存储容量为140TB,目前应该没有那么大容量的手机,存储能力太强了. 关于如何使用S ...
- Android 借助Stetho在Chrome上调试Android网络、数据库、Sharedpreferences
Android 借助Stetho在Chrome上调试Android网络.数据库.Sharedpreferences 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/a ...
- 10分钟理解Android数据库的创建与使用(附具体解释和演示样例代码)
1.Android数据库简单介绍. Android系统的framework层集成了Sqlite3数据库.我们知道Sqlite3是一种轻量级的高效存储的数据库. Sqlite数据库具有以下长处: (1) ...
- [Android Pro] 完美Android Cursor使用例子(Android数据库操作)
reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...
- Android数据库升级
随着Android应用版本的迭代,经常遇到数据库表结构发生改变,或者一些指定的表数据需要更新.这也就引出一个问题Android数据库的更新问题. Android数据库升级分类 Android数据库更新 ...
- 优雅的处理Android数据库升级的问题
原始完成于:2015-04-27 19:28:22 提供一种思路,优雅的处理Android数据库升级的问题,直接上代码: 1 package com.example.databaseissuetest ...
- Android 数据库读取数据显示 [5]
2016-12-1 课程内容 昨天学了Android数据库升级.降级.创建 今天把数据库表里面的数据读取出来显示到手机屏幕上 下面代码是MainActivity.java 的代码 package co ...
- Android数据库高手秘籍(一)——SQLite命令
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/38461239 要想熟练地操作不论什么一个数据库.最最主要的要求就是要懂SQL语言, ...
随机推荐
- oracle 自己改了 spfile 导致起不来
oracle pfile 出错 今天在升级 oracle 内存的时候参数调错了,导致 oracle 起不来, 情急之下用 vim 修改了 spfile 文件,结果由于该文件是二进制的,不能直接修改,所 ...
- Bootstrap 实现CRUD示例及代码
https://github.com/wenzhixin/bootstrap-table-examples/blob/master/crud/index.html <!DOCTYPE html& ...
- Codeforces 429 B. Working out-dp( Codeforces Round #245 (Div. 1))
B. Working out time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- hh:mm:ss时间格式那些事儿
怎么把hh:mm:ss.45 时间格式换算成秒? 比较简单点的格式,比如hh:mm:ss是比较容易的,但是怎么样把hh:mm:ss.45,这样的格式,就是秒不是整数的时间格式换算成秒? ans:将时间 ...
- centos 7 的安全检查和ip封锁设置
查看最近登录失败的验证记录 tail -f grep "authentication failure;" /var/log/secure 发现有个ip频繁尝试登录, /sbin/i ...
- 【BZOJ 2288】 2288: 【POJ Challenge】生日礼物 (贪心+优先队列+双向链表)
2288: [POJ Challenge]生日礼物 Description ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, ..., AN. 她被允许选择不超 ...
- BZOJ 2733 [HNOI2012]永无乡(启发式合并+Treap+并查集)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2733 [题目大意] 给出n个点,每个点都有自己的重要度,现在有连边操作和查询操作, 查 ...
- 【FFT(母函数)+容斥】BZOJ3771-Triple
[题目大意] 给出 n个物品,价值为别为Xi且各不相同,现在可以取1个.2个或3个,问每种价值和有几种情况? *顺序不同算一种 [思路] 显然是个母函数,A表示每种物品取一个的情况,B表示每种物品取二 ...
- 将springboot配置文件中的值注入到静态变量
SpringBoot配置文件分为.properties和.yml两种格式,根据启动环境的不同获取不同环境的的值. spring中不支持直接注入静态变量值,利用spring的set注入方法注入静态变量 ...
- Problem D: 零起点学算法83——数组中删数
#include<stdio.h> int main(void) { int n,i,t,x,flag; while(scanf("%d",&n)!=EOF) ...