电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

android数据库 之 sqlite数据库

22页
  • 卖家[上传人]:第***
  • 文档编号:31310793
  • 上传时间:2018-02-06
  • 文档格式:DOC
  • 文档大小:342.43KB
  • / 22 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、Android 数据库 之 SQLite 数据库Android 数据库 一、关系型数据库 SQLIte每个应用程序都要使用数据,Android 应用程序也不例外, Android 使用开源的、与操作系统无关的 SQL 数据库 SQLite。SQLite 第一个 Alpha 版本诞生于 2000 年 5 月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百 K 的内存就够了。SQLite 已经被多种软件和产品使用,Mozilla FireFox 就是使用 SQLite 来存储配置数据的,Android 和 iPhone 都是使用 SQLite 来存储数据的。SQLite 体系结构图如下: 编译器包括 Tokenizer(词法分析器)、 Parser(语法分析器)、Code Generator(代码产生器)。他们协同处理文本形式的结构化查询语句。后端由 B-tree,Pager , OS Interface 组成。B-tree 的职责是负责排序,维护多个数据库页之间错综复杂的关系,将页面组织成树状结构,页面就是树的叶子。 Pager 负责传输,根据 B-tree

      2、的请求从磁盘读取页面或者写入页面。公共服务中有各种实用的功能比如:内存分配、字符串比较,Unicode 转换等。SQLite 数据库是 D.Richard Hipp 用 C 语言编写的开源嵌入式数据库,支持的数据库大小为 2TB。它具有如下特征:1、轻量级SQLite 和 CS 模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用 SQLite 一般只需要带上它的一个动态库,就可以享受它的全部功能。而且那个动态库的尺寸也相当小。2、独立性SQLite 数据库的核心引擎本身不依赖第三方软件,使用它也不需要“安装”,所以在使用的时候能够省去不少麻烦。3、隔离性SQLite 数据库中的所有信息(比如表、视图、触发器)都包含在一个文件内,方便管理和维护。4、跨平台SQLite 数据库支持大部分操作系统,除了我们在电脑上使用的操作系统之外,很多手机操作系统同样可以运行,比如 Android、Windows Mobile、Symbian、Palm 等。5、多语言接口SQLite 数据库支持很多语言编程接口,比如 CC+、Java、Python、dotNet、Ruby

      3、、Perl 等,得到更多开发者的喜爱。6、安全性SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程向数据库执行写操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操作将不会再发生。SQLite 官方网站(http:/www.sqlite.org),了解更多内容请前往。二、导出查看数据库文件在 android 中,为某个应用程序创建的数据库,只有它可以访问,其它应用程序是不能访问的,数据库位于 Android 设备/data/data/package_name/databases文件夹中。想要将数据库文件导出可以使用 eclipse,如图所示: 查看数据库,使用 SQlite Database Browser,如图所示:三、扩展类3.1 扩展 SQLiteOpenHelperAndroid 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创

      4、建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:构造函数,调用父类 SQLiteOpenHelper 的构造函数onCreate()方法;/ TODO 创建数据库后,对数据库的操作onUpgrage()方法。/ TODO 更改数据库版本的操作当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。操作数据库的最佳实践是创建一个辅助类,例如联系人模块class ContactsDatabaseHelper extends SQLiteOpenHelper3.2 Cursor 类Android 使用 Cursor 类返回一个需要的值,Cursor 作为一个指针从数据库查询返回结果集,使用 Cursor 允许 Android 更有效地管理它们需要的行和列,你使用ContentValues 对象存储键 /值

      5、对,它的 put()方法允许你插入不同数据类型的键值。3.3 数据类型SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。四、数据库操作4.1 创建和打开数据库在 Android 中创建和打开一个数据库都可以使用 openOrCreateDatabase 方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,如果不存在则创建一个数据库:创建成功则返回一个 SQLiteDatebase 对象,否则抛出异常 FileNotFoundException。下面我们来创建一个名为 Test 的数据库,并返回一个 SQLiteDatabase 对象 mSQLiteDat

      6、abase。mSQLiteDatabase=this.openOrCreateDatabase(Test,MODE_PRIVATE,null);4.2 创建表通过 execSQL 方法来执行一条 SQL 语句。String CREATE_TABLE=create table 表名(列名,列名,);mSQLiteDatabase.execSQL(CREATE_TABLE); 创建表的时候总要确定一个主键,这个字段是 64 位整型,别名_rowid 。其特点就是自增长功能。当到达最大值时,会搜索该字段未使用的值(某些记录被删除 _rowid 会被回收),所以要唯一严格增长的自动主键必须加入关键字 autoincrement。4.3 删除表mSQLiteDatabase(drop table 表名);4.4 修改数据4.4.1 插入记录可以使用 insert 方法来添加数据,但是 insert 方法要求把数据都打包到 ContentValues 中,ContentValues 其实就是一个 Map,Key 值是字段名称,Value 值是字段的值。通过 ContentValues 的 put

      7、方法就可以把数据放到 ContentValues 对象中,然后插入到表中去。具体实现如下:ContentValues cv=new ContentValues();cv.put(TABLE_NUM,1);cv.put(TABLE_DATA,测试数据库数据);mSQLiteDatabase.insert(Test,null,cv);/同样可以使用 execSQL 方法来执行一条“插入“的 SQL 语句String INSERT_DATA=insert into 表名(列名, ) values (值,);mSQLiteDatabase.execSQL(INSERT_DATA);4.4.2 更新记录ContentValues cv=new ContentValues();cv.put(TABLE_NUM,3);cv.put(TABLE_DATA,修改后数据);mSQLiteDatabase.update(Test,cv,num+=+rowId,null);/同样可以使用 execSQL 方法来执行一条“更新”的 SQL 语句String UPDATE_DATA=update 表名 set 列

      8、名=xxx where xxx;mSQLiteDatabase.execSQL(UPDATE_DATA);update 表名 set 列名=xxx where 条件4.4.3 删除记录/要删除数据可以使用 delete 方法mSQLiteDatabase.delete(Test,WHERE _id=+0,null);/也可以通过 execSQL 方法执行 SQL 语句删除数据mSQLiteDatabase.execSQL(delete from 表名 where 条件);4.5 查询SELECT 列名 FROM 表名 WHERE 条件例如在联系人中保存 3 个联系人,data 表如下: 查询 data1 值为 10086 的项对查询条件和返回值稍做修改LIKE 的使用Like 经常和 %或者 _ 搭配使用。%可与任意 0 个或者多个字符匹配,_可与任意单个字符匹配。 GLOB 的使用Glob 与 like 非常相似,常与 * 搭配。限定和排序关键字:order、limit 、offset。Order 分为 asc(默认升序), desc(降序)。限定个数指定偏移内连接:通过表中两个字段

      9、进行连接,找出两个集合的交集。select xxx from 表名 1 inner join 表名 2 on 表名 1.列名 = 表名 2.列名左外连接:左表的所有项和内连接项。select xxx from 表名 1 left outer join 表名 2 on 表名 1.列名 = 表名 2.列名 五、高级特性5.1 视图视图是虚拟表,它的内容都派生自其它表的查询结果。虽然它看起来像基本表,但是它不是,因为基本表的内容是持久的,而视图的内容是使用时动态产生的。create view 表名 as 定义5.2 索引索引是一种用来在某种条件下加速查询的结构。create index 索引名 on 表名(列名)5.3 触发器触发器的作用是当具体的表发生特定的数据事件时,执行对应的操作。create trigger 触发器名 before|after insert|delete|update|update of columns on 表名 action首先还谢谢是提供底稿的同事,这里只是介绍了基础的东西,感兴趣的同学,请 SQLite 官方网站(http:/www.sqlite.org)了解。这里提供一个博客园的博客在 Android 中查看和管理 sqlite 数据库具体地址:http:/ data/data 这个目录是需要 root 权限的;2. adb shell 进入手机后,不是每个手机都能找到 sqlite3 这个命令的。至少说我们拿到的工程样机里面就没有。 您可能也喜欢:Android 数据库 之 SQLite 数据库学习 Oracle 数据库( 3)-SELECT 语句学习 Oracle 数据库( 2)-SQLPLUS 介绍学习 Oracle 数据库( 1)-写在前面的话学习 Oracle 数据库( 4)在表上建立不同

      《android数据库 之 sqlite数据库》由会员第***分享,可在线阅读,更多相关《android数据库 之 sqlite数据库》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.