数据存储.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

C A D C D.
北京咱爸咱妈养老投资管理有限公司大庆分公司
校园信息管理系统 河北科技大学网络中心 2000/4/10.
标题 主讲: 时间:.
长江大学电视台大会交流发言.
《民法学》第七讲 债权法(下):合同法 中央党校政法教研部 李雅云教授.
第二章 项目一:企业厂区与车间平面设计 1.
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
SharedPreferences与文件存储
低碳生活,从小事做起 编辑人:刘瑞兴 指导老师:麦文燕 吴霞 编辑地址;岭南师范学院附属中学 编辑时间:
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
資料庫管理 資管二 賴柏融.
翰林自然 六年級上學期 第二單元 聲音與樂器.
数据库应用与程序设计.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
利用共同供應契約 辦理大量訂購流程說明.
JAVA 程式設計與資料結構 第十一章 JDBC.
第7章 Android文件与本地数据库(SQLite)
基于Hadoop的数据仓库Hive.
第10章 App微信分享的实现 倚动实验室.
Android資料庫處理 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第11章 Android GPS位置服务与地图编程
資料庫安全 (Database Security)
第8章 Android内容提供者(ContentProvider)应用
Ch5 Android應用程式的主要組成.
Chapter 7 Android應用元件 Android應用元件可以幫助我們獲得系統資源訊息(ActivityManager)、提供系統服務(Service)、搜尋系統服務(SearchManager)、監聽Intent訊息(Broadcast Receiver)以及資料共享(ContentProvider和ContentResolver)。
SQL Server 2000 数据库入门.
ContentProvider與資料共享
ANDROID PROGRAMMING2.
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
主编:钟元生 赵圣鲁.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第九章 输入/输出流.
第六讲 JSP中的文件操作(2) 教学目的 本讲继续讲述JSP中使用Java输入、输出流实现文件的读写操作 。 1 文件上传 2 文件下载
第10章 儲存偏好設定、檔案與資料庫 10-1 存取偏好設定 10-2 檔案存取 10-3 關聯式資料庫與SQLite
第9章 事务.
實驗十四:顯示與控制地圖.
Spring & mongodb java实战mongodb 曹巍 2013年9月22日.
Homework 1(上交时间:10月14号) 倒排索引.
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第8章 Service解析.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
实验二讲评 … 张榆….
第10章 GPS位置服务与地图编程.
第五讲 JSP中的文件操作(1) 教学目的 本讲主要讲述JSP中使用Java输入、输出流实现文件的读写 操作 。 知识要点
MySQL开发规范 DB组-张浩.
實驗十一:待辦事項程式 (儲存在手機上).
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
用例.
Ch17 SharedPreference與檔案應用
Location Based Services - LBS
國民大學 國民大學.
OceanBase 0.4:从API到SQL 日照
17 交易處理與鎖定 17-1 交易的基礎 17-2 交易處理 17-3 並行控制 17-4 資料鎖定 17-5 死結問題.
107年7月新修訂轉診支付標準 及電子轉診平台簡介
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
教育部特殊教育通報網 學生異動、接收操作說明.
第16章 天气预报 --Web Service调用
創造不一樣的人生 -如何與身心障礙者接觸 新竹教育大學 薛明里.
Android进程间通讯.
SQLite資料庫 靜宜大學資管系 楊子青.
银川社保网上申报 宁夏人力资源和社会保障 网上服务大厅操作
数据库应用技术 天津电大 翟迎建.
报 告 人:阮太元 开课系部:电子与信息技术系
Presentation transcript:

数据存储

Android数据存储方式 SharePreferences 文件 SQLite数据库 ContentProvider 轻量级键-值方式存储,以XML文件方式保存。存储小数据。 文件 采用java.io.*库所提供有I/O接口,读写文件。 内部存储(小、中)和外部存储(大文件)。 SQLite数据库 SQLite是轻量级嵌入式内置数据库。存储结构化的私有数据。 ContentProvider ContentProvider可为数据封装,为多个应用共享。

SharedPreferences 持久化的Map 以「键-值对」的方式保存简单数据类型 跨Session自动持久化数据 通常用来保存需要长期存储的应用程序数据 用户名 常用的wifi网络 用户自定义数据 目录:/data/data/<包>/shared_prefs/***.xml

Activity的SharedPreferences Activity.getPreferences(int mode) MODE_PRIVATE: 缺省,创建的文件只有当前程序能访问 MODE_WORLD_READABLE MODE_WORLD_WRITEABLE

命名的SharedPreferences Context.getSharedPreferences( String name, int mode) name: SharedPreferences文件名 mode: 模式

向SharedPreferences写数据 调用SharedPreferences.edit() 返回一个SharedPreferences.Editor实例 putInt(String key, int value) putString(String key, int value) remove(String key) 提交修改 SharedPreferences.Editor.commit()

读取SharedPreferences 使用SharedPreferences的方法读取数据 getAll() getBoolean(String key, boolean defValue) getString(String key, String defValue)

清除SharedPreferences Editor.clear().commit()

示例

文件 该类表示由路径名表示的文件系统中的一个对象 内部存储通常用来存放小的程序私有数据 外部存储通常用来存放大的非私有数据集 采用java.io.*库所提供有I/O接口,读写文件。

文件的API FileOutputStream FileInputStream 参见文档 OpenFileOutput(String name, int mode) 打开私有文件进行写入。 如果文件不存在先创建。 FileInputStream OpenFileInput(String name) 打开私有文件进行读取 当文件不存在时抛出FileNotFoundException 异常 参见文档

使用外部内存文件 可移动设备会在没有警告的情况下引起文件出现/消失 检查设备状态 String Environment.getExternalStorageState() MEDIA_MOUNTED: 已装载,可读写 MEDIA_MOUNTED_READ_ONLY: 已装载,只读 MEDIA_REMOVED: 没有装载

使用外部存储文件 添加权限 <use-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE”/>

Cache文件(临时文件) 当可用空间不够时可能会被删除 当应用程序卸载时会被删除 File Context.getCacheDir() 获取一个该程序临时目录的绝对路径,可用于存放临时文件 Context.getExternalCacheDir() 返回外部存储中存放临时文件的一个目录

读取资源中的静态文件 要打开打包在应用程序中的静态文件,使用Resources.openRawResource(R.raw.mydatafile) 该文件必须放在文件夹res/raw/中 InputStream in = this.getResources().openRawResource(R.raw.my); in.close();

示例

SQLite 提供内存数据库 专门设计,占用内存很小(300kB) 实现了大部分SQL92 支持ACID事务 Atomic, Consistent, Isolated & Durable

SQLite 在某些情况下,文件不是有效的 内置SQLite 数据库支持 如果多线程数据访问是相关的 如果应用程序处理可能变化的复杂数据结构 等等 内置SQLite 数据库支持 数据库对于创建它们的包是私有的 数据库不应该用来存贮文件

数据库 SQLiteDatabase: 封装了一些操作数据库的API(CRUD) 添加(Create) 查询(Retrieve) 更新(Update) 删除(Delete)

创建数据库 SQLiteDatabase.create Context.openOrCreateDatabase 创建内存数据库 Context.openOrCreateDatabase 打开一个私有的数据库,如果数据库不存在则创建一个新的数据库 推荐方法:继承自SQLiteOpenHelper

SQLiteOpenHelper 管理数据库的创建和升级 用户创建一个该类的子类,重写: onCreate onUpgrade onOpen(可选) db = dbhelper.getWritableDatabase();

使用数据库(SQLiteDatabase) 用SQLiteOpenHelper方法打开、返回底层数据库 对底层数据库执行相应的操作

使用数据库(SQLiteDatabase) execSQL 可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句 SQLiteDatabase db = ....; db.execSQL(“insert into person(name, age) values(‘Tom', 20)"); db.close(); rawQuery 可以执行select语句。

示例

ContentProvider 表示结构化的数据集 对数据集进行包装 对数据访问添加权限 用于程序间的数据共享 客户端通过ContentResolver访问ContentProvider

ContentResolver 通过数据库形式的接口对数据进行读取、写入 提供额外的服务,比如变更通知 数据模型:数据库表 查询、插入、更新、删除…… 提供额外的服务,比如变更通知 数据模型:数据库表 Context.getContentResolver()

ContentProvider & ContentResolver 通过这些类,可以是运行在一个进程中的代码访问另一个进程管理的数据

Android内置的ContentProvider 浏览器 —— 书签、历史等 通话记录 —— 电话的使用情况 通讯录 —— 联系人数据 媒体 —— 媒体数据库 用户词典 —— 用于预测拼写的数据库 更多……

URI Content Provider通过URI进行访问 URI的格式确定了指定的数据集是由哪个ContentProvider管理的 content://authority/path/id content: scheme authority: Content Provider的ID path: 0或多个部分,用来方式数据是如何访问的 id: 请求的指定记录

查询 ContentResolver.query() 返回一个Cursor,可以对结果集进行遍历

删除 ContentResolver.delete() 返回删除的行数

插入 ContentResolver.insert() 返回插入行的URI

更新 ContentResolver.update() 返回更新的行数

ContentProviderOperation

示例

创建自己的ContentProvider 实现数据的存储系统 定义一个Contract类来支持所创建ContentProvider的用户 实现一个ContentProvider的子类 在AndroidManifest.xml中声明、配置Content Provider