数据存储策略概述.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQLite API 4 Android
1、SQLiteDatabase:
获取方式: SQLiteDatabase.openDatabase(….) //打开现有的数据库 .openOrCreateDatabase(…) //打开或创建数据库 使用方式: .execSQL() //执行更新类操作 .rawQuery() //执行查询返回Cursor对象 .close() //关闭 2、Cursor: .moveNext() //返回true如果有下一条,否则返回false .getXXX(index) //返回查询到的每index列的数据,index从0开始
• 该对象的获取方法有两种:
1、PreferenceManager.getDefaultSharedPreferences(this);
//会使用 <packName_preferences.xml>文件,如果没有就会在第一次写入时创建一个。 2、this.getSharedPreference(“name”,MODE) //会使用<name.xml>,其中的MODE有以下选择: Context.MODE_PRIVATE :只能由本APP使用 Context.MODE_WORLD_READABLE: 其它程序可以读 Context.MODE_WORLD_WRITEABLE:其它程序可读可写(不鼓励) • 可以存入的数据类型:boolean,int ,long,String,Set<String> • 获取数据:<get类型(key,defaultValue)> • 写入:sp.edit().put类型(key,value) • 提交:sp.edit().commit() • 使用其它app的sp对象:otherContext.getShared….(….);
2、InputStream in=context.openFileInput(fileName); 常用的方法: File getFilesDir() //获取data/packName/files的目录对象 File getDir(dirName,mode) // String[] fileList(); deleteFile(fileName);
数据存储策略
J o h n . Y u · 2 0 1 4 - 1 2 - 1 2 制 作
03
02
01
SharedPreferences存储பைடு நூலகம்
• 原理:由保存在data/data/<packName>/shared_prefs/xxxx.xml完成数据的存储,格式如图。其 API的设计即围绕这个文件展开。
Sdcard的操作
可使用Environment.getExternalStorageState();获取是否挂载的信息
File Environment.getExternalStorageDirectory(); 获取Sdcard 的挂载点
需要加入: <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
SQLiteOpenHelper:
ContentProvider
1、它是Android数据共享标准(区分于RDBMS)的核心对象,也是Android的组件之一(需要注册) 2、其由开发者继承,并overide其CURD的方法,注册后暴露其URI,即一系列的URI对应到相应的CURD方法。 3、其URI符合Restful风格,统一了数据共享的API操作,即屏蔽了内部对文件,对数据库等一系列操作的不 同,APP的开发者只需要关注Android所提供的API即可。 4、其访问的URI规则如下: • scheme:ContentProvider(内容提供者)的scheme已经由Android所规定为:content://。 • 主机名(或Authority):用于唯一标识这个ContentProvider(即包名) • 路径(path):可以用来表示我们要操作的数据,路径的构建应根据业务而定,如下: a 要操作contact表中id为10的记录,可以构建这样的路径:/contact/10 b 要操作contact表中id为10的记录的name字段, contact/10/name c 要操作contact表中的所有记录,可以构建这样的路径:/contact
• 其它app的context如何获取:<this.createPackageConext(pkName,安全代码)>
File存储
• 原理:使用一个普通自定义文件做为存储媒介,以流的方式进行读写操作。 • 系统为此方案进行了一些简化:
1、OutputStream out=context.openFileOutput(fileName,mode); 此方法打开<data/packName/files/fileName>的输出流。Mode可以是 MODE_PRIVATE,MODE_APPEND,MODE_WORLD_READALBE,MODE_WROLD_WRITEABLE
SQLite方案
1、基于文件的关系型数据库系统,支持SQL92,海量存储、并发、性能、安全方面较弱,但体积小,开 销低,较适合用于便携及嵌入式设备。 2、下载:下载页面:http://www.sqlite.org/download.html 3、几乎所有的操作系统上都有其发行版本,使用类似于MySql,上手简单 4、数据类型: 1.NULL:空值。 2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。 3.REAL:浮点数字,存储为8-byte IEEE浮点数。 4.TEXT:字符串文本。 5.BLOB:二进制对象。
SQLite的简单使用
由Android SDK的tools下,自带了sqlite。 1、启动命令行模式:sqlite3 [数据文件] 2、.database :查看所操作的数据库(文件) 3、.tables :查看当前数据库中的表 4、.schema [表名] :查看表的结构 5、CURD :增删改查操作 6、.exit 退出命令行状态。
相关文档
最新文档