第七章 Android数据存储图文图文课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 外部存储就是指把文件存储到一些外部设备上,例如SD卡、 设备内的存储卡等,属于永久性存储方式。使用这种类型存 储的文件可以共享给其他的应用程序使用,也可以被删除、 修改、查看等,它不是一种安全的存储方式。
• 内部存储是指将应用程序的数据,以文件的形式存储在应用 程序的目录下(data/data/<packagename>/files)。这个 文件属于该应用程序私有,如果其他应用程序想要操作本应 用程序的文件,就需要设置权限。内部存储的文件随着应用 程序的卸载而删除,随着应用程序的生成而创建。
7.1 数据存储方式简介
• Android中五种不同数据存储方式: • 文件存储 • SharedPreferences存储 • SQLite数据库存储 • 网络存储 • ContentProvider
7.2 文件存储
• Android中的文件存储与Java中的文件存储类似,都是以I/O 流的形式把数据存储到文件中。不同点在于Android中的文 件存储分为外部存储和内部存储两种。
7.5.1 配置LitePal
• LitePal是一款开源的Android数据库框架,采用了对象关系 映射的模式。首先需要在GitHub上去下载LitePal开源库, 其下载地址是 https://github.com/LitePalFramework/LitePal,根据自 己的需要下载相应版本就可以了。
• (3)配置LitePalApplication,打开AndroidManifest.xml 文件,在<application>标签内添加如下代码:
• android:name="org.litepal.LitePalApplication"
百度文库
• 谢谢
感谢
谢谢,精品课件 资料搜集
感谢
谢谢,精品课件
• 在使用SharedPreferences进行数据操作的基本步骤如下:
• (1)使用getSharedPreferences()方法获取一个 SharedPreferences实例对象。
• (2)使用SharedPreferences实例对象的edit()方法,获取 SharedPreferences.Editor编辑对象。
• <?xml version="1.0" encoding="UTF-8" ?>
• <litepal>
•
<dbname value="BookStore"></dbname>
•
<version value="1"></version>
•
<list></list>
• </litepal>
• 其中,<dbname>标签用于指定数据库名,<version>标签用 于指定数据库版本号,<list>标签用于指定所有的映射模型。
将指针移动到上一条数据上
获取集合的数据数量
返回指定属性名称的序号,如果属性不存在则产生异常
返回指定序号的属性名称
返回属性名称的字符串数组
根据属性名称返回序号
将指针移动到指定的数据上
返回当前指针的位置
7.5 LitePal操作数据库
• LitePal是一款开源的Android数据库框架,它采用了对象关 系映射(ORM)的模式,并将我们平时开发最常用到的一些 数据库功能进行了封装,使得不用编写一行SQL语句就可以 完成各种建表和增删改查的操作。
moveToPrevious()
getCount()
getColumnlnIndexOrThrow()
getColumnName()
getColumnNames()
getColumnIndex()
moveToPosition()
getPosition()
说
明
将指针移动到第一条数据上
将指针移动到下一条数据上
7.4.1 创建数据库
• Android为了能够更加方便地管理数据库,专门提供了一个 SQLiteOpenHelper帮助类。该类是一个抽象类,具有 onCreate()和onUpgrade()两个抽象方法,这就意味着我们 需要创建一个自己的帮助类去继承它,然后分别在这两个方 法中去实现创建、升级数据库的逻辑。
group by column having column=value order by column
指定查询的表名 指定查询的列明
指定 where 的约束条件 为 where 中的占位符提供具 体内容 分组方式 定义组的过滤器 指定查询结果的排序方式
方
法
moveToFirst()
moveToNext()
7.4.4更新数据
• SQLiteDatabase类中也提供了一个非常好用的update()方法, 用于对数据进行更新。这个方法接收四个参数,第一个参数 和insert()方法一样,也是表名,在这里指定去更新哪张表 里的数据;第二个参数是ContentValues对象,就是要把更 新数据在这里组装进去;第三、第四个参数用于约束更新某 一行或某几行中的数据,不指定的话就是默认更新所有行。
• SQLiteDatabase类中提供了一个insert()方法,这个方法就 是专门用于添加数据的,其返回值是新数据插入的位置,即 ID值。它接受三个参数:第一个参数指定需要添加数据的表 名;第二个参数用于在未指定添加数据的情况下给某些可为 空的列自动赋值NULL,直接传入null即可;第三个参数是一 个ContentValues对象,它提供了一系列的put()方法重载, 用于向ContentValues中添加数据,只需要将表中的每个列 名以及相应的待添加数据传入即可。
让IT教学更简单A,nd让roITid学程习序更设有计效教程
第七章 Android数据存储
目录
• 7.1 数据存储方式简介 • 7.2 文件存储 • 7.3 SharedPreferences的使用 • 7.4 SQLite数据库存储 • 7.5 LitePal操作数据库
学习目标
• 了解数据存储方式的特点 • 掌握文件存储、SharedPreferences存储的使用 • 掌握SQLite数据库的增、删、改、查的使用 • 掌握LitePal插件操作数据库
7.3 SharedPreferences的使用
• SharedPreferences是一个轻量级的存储类,特别适合用于 保存软件配置参数,例如用于登录时的用户名、密码、性别 等参数。SharedPreferences保存数据,其实质是用xml文件 存放数据,文件存放在/data/data/<package name>/shared_prefs目录下。
• (3)使用SharedPreferences.Editor编辑对象的putXxx() 方法来保存数据。
• (4)使用SharedPreferences对象的getXxx()方法来读取数 据。
• (5)使用SharedPreferences.Editor编辑对象的commit() 方法将数据提交到XML文件中。
7.4.5 删除数据
• SQLiteDatabase类中也提供了一个非常好用的delete()方法, 用于删除数据。这个方法有三个参数,第一个参数仍然是表 名,第二、第三个参数是用于约束删除某一行或某几行的数 据,不指定的话默认就是删除所有行。
7.4.6 查询数据
• SQLiteDatabase类中还提供了一个query()方法用于对数据 进行查询。这个方法的参数非常复杂,最短的一个方法重载 也需要传入7个参数。
• implementation files('libs/litepal-1.6.1.jar')
• 则说明LitePal开源库加载成功。其中最后的1.6.1是版本号 的意思。
• (2)需要配置litepal.xml文件。右击app/src/main目录 →New→Directory,创建一个assets目录,然后在assets目 录下再新建一个litepal.xml文件,并编辑litepal.xml文件 中的内容如下。
• SQLiteOpenHelper帮助类中还有两个非常重要的实例方法: getReadableDatabase()和getWritableDatabase()方法。这 两个方法都可以创建或打开一个现有的数据库,并返回一个 可对数据库进行读写操作的对象。
• SQLiteOpenHelper帮助类中还有两个构造方法可供重写,一 般使用参数少一点的构造方法即可。这个构造方法中接收4 个参数,第一个参数是Context,必须要有它才能对数据库 进行操作;第二个参数是数据库名,创建数据库时使用的就 是这里指定的名称;第三个参数允许我们在查询数据的时候 返回一个自定义的Cursor,一般都是传入null;第四个参数 表示当前数据库的版本号,可用于对数据库进行升级操作。
资料搜集
7.4 SQLite数据库存储
• SQLite数据库比传统的数据库更加适用于嵌入式系统,因为 它占用空间非常少,运行高效可靠,可移植性好,并且提供 了零配置(zero-configuration)运行模式。
• SQLite数据库的优势在于其嵌入到使用它的应用程序中。这 样不仅提高了运行效率,而且屏蔽了数据库使用和管理的复 杂性,程序仅需要进行最基本的数据操作,其它操作可以交 给进程内部的数据库引擎完成。
位置
类型+名称
1 String table 2 String[] columns
3 String selection 4 String[]
selectionArgs 5 String groupBy 6 String having 7 String orderBy
对应 SQL 部分
说明
from table_name select column1,column2 where column=value
• (1)创建一个Android应用程序,将下载的jar文件拷贝到 app/libs目录里,然后右键点击这个包,在弹出的菜单中选 择“Add As Library”选项,在弹出的对话框中点击“确定” 按钮即可。 打开app/build.gradle文件,在dependencies 闭包中看到自动添加了如下内容:
7.4.2 升级数据库
• 当我们需要对数据库中的表进行删除或增加时,就可以使用 SQLiteOpenHelper帮助类中onUpgrade()方法。
7.4.3 添加数据
• 对数据的操作无非有四种,即CRUD,其中C代表添加 (Create),R代表查询(Retrieve),U代表更新 (Update),D代表删除(Delete)。Android提供了一系列 的辅助性方法,使得在Android中不去编写SQL语句,也能轻 松完成所有的CRUD操作。
• 内部存储是指将应用程序的数据,以文件的形式存储在应用 程序的目录下(data/data/<packagename>/files)。这个 文件属于该应用程序私有,如果其他应用程序想要操作本应 用程序的文件,就需要设置权限。内部存储的文件随着应用 程序的卸载而删除,随着应用程序的生成而创建。
7.1 数据存储方式简介
• Android中五种不同数据存储方式: • 文件存储 • SharedPreferences存储 • SQLite数据库存储 • 网络存储 • ContentProvider
7.2 文件存储
• Android中的文件存储与Java中的文件存储类似,都是以I/O 流的形式把数据存储到文件中。不同点在于Android中的文 件存储分为外部存储和内部存储两种。
7.5.1 配置LitePal
• LitePal是一款开源的Android数据库框架,采用了对象关系 映射的模式。首先需要在GitHub上去下载LitePal开源库, 其下载地址是 https://github.com/LitePalFramework/LitePal,根据自 己的需要下载相应版本就可以了。
• (3)配置LitePalApplication,打开AndroidManifest.xml 文件,在<application>标签内添加如下代码:
• android:name="org.litepal.LitePalApplication"
百度文库
• 谢谢
感谢
谢谢,精品课件 资料搜集
感谢
谢谢,精品课件
• 在使用SharedPreferences进行数据操作的基本步骤如下:
• (1)使用getSharedPreferences()方法获取一个 SharedPreferences实例对象。
• (2)使用SharedPreferences实例对象的edit()方法,获取 SharedPreferences.Editor编辑对象。
• <?xml version="1.0" encoding="UTF-8" ?>
• <litepal>
•
<dbname value="BookStore"></dbname>
•
<version value="1"></version>
•
<list></list>
• </litepal>
• 其中,<dbname>标签用于指定数据库名,<version>标签用 于指定数据库版本号,<list>标签用于指定所有的映射模型。
将指针移动到上一条数据上
获取集合的数据数量
返回指定属性名称的序号,如果属性不存在则产生异常
返回指定序号的属性名称
返回属性名称的字符串数组
根据属性名称返回序号
将指针移动到指定的数据上
返回当前指针的位置
7.5 LitePal操作数据库
• LitePal是一款开源的Android数据库框架,它采用了对象关 系映射(ORM)的模式,并将我们平时开发最常用到的一些 数据库功能进行了封装,使得不用编写一行SQL语句就可以 完成各种建表和增删改查的操作。
moveToPrevious()
getCount()
getColumnlnIndexOrThrow()
getColumnName()
getColumnNames()
getColumnIndex()
moveToPosition()
getPosition()
说
明
将指针移动到第一条数据上
将指针移动到下一条数据上
7.4.1 创建数据库
• Android为了能够更加方便地管理数据库,专门提供了一个 SQLiteOpenHelper帮助类。该类是一个抽象类,具有 onCreate()和onUpgrade()两个抽象方法,这就意味着我们 需要创建一个自己的帮助类去继承它,然后分别在这两个方 法中去实现创建、升级数据库的逻辑。
group by column having column=value order by column
指定查询的表名 指定查询的列明
指定 where 的约束条件 为 where 中的占位符提供具 体内容 分组方式 定义组的过滤器 指定查询结果的排序方式
方
法
moveToFirst()
moveToNext()
7.4.4更新数据
• SQLiteDatabase类中也提供了一个非常好用的update()方法, 用于对数据进行更新。这个方法接收四个参数,第一个参数 和insert()方法一样,也是表名,在这里指定去更新哪张表 里的数据;第二个参数是ContentValues对象,就是要把更 新数据在这里组装进去;第三、第四个参数用于约束更新某 一行或某几行中的数据,不指定的话就是默认更新所有行。
• SQLiteDatabase类中提供了一个insert()方法,这个方法就 是专门用于添加数据的,其返回值是新数据插入的位置,即 ID值。它接受三个参数:第一个参数指定需要添加数据的表 名;第二个参数用于在未指定添加数据的情况下给某些可为 空的列自动赋值NULL,直接传入null即可;第三个参数是一 个ContentValues对象,它提供了一系列的put()方法重载, 用于向ContentValues中添加数据,只需要将表中的每个列 名以及相应的待添加数据传入即可。
让IT教学更简单A,nd让roITid学程习序更设有计效教程
第七章 Android数据存储
目录
• 7.1 数据存储方式简介 • 7.2 文件存储 • 7.3 SharedPreferences的使用 • 7.4 SQLite数据库存储 • 7.5 LitePal操作数据库
学习目标
• 了解数据存储方式的特点 • 掌握文件存储、SharedPreferences存储的使用 • 掌握SQLite数据库的增、删、改、查的使用 • 掌握LitePal插件操作数据库
7.3 SharedPreferences的使用
• SharedPreferences是一个轻量级的存储类,特别适合用于 保存软件配置参数,例如用于登录时的用户名、密码、性别 等参数。SharedPreferences保存数据,其实质是用xml文件 存放数据,文件存放在/data/data/<package name>/shared_prefs目录下。
• (3)使用SharedPreferences.Editor编辑对象的putXxx() 方法来保存数据。
• (4)使用SharedPreferences对象的getXxx()方法来读取数 据。
• (5)使用SharedPreferences.Editor编辑对象的commit() 方法将数据提交到XML文件中。
7.4.5 删除数据
• SQLiteDatabase类中也提供了一个非常好用的delete()方法, 用于删除数据。这个方法有三个参数,第一个参数仍然是表 名,第二、第三个参数是用于约束删除某一行或某几行的数 据,不指定的话默认就是删除所有行。
7.4.6 查询数据
• SQLiteDatabase类中还提供了一个query()方法用于对数据 进行查询。这个方法的参数非常复杂,最短的一个方法重载 也需要传入7个参数。
• implementation files('libs/litepal-1.6.1.jar')
• 则说明LitePal开源库加载成功。其中最后的1.6.1是版本号 的意思。
• (2)需要配置litepal.xml文件。右击app/src/main目录 →New→Directory,创建一个assets目录,然后在assets目 录下再新建一个litepal.xml文件,并编辑litepal.xml文件 中的内容如下。
• SQLiteOpenHelper帮助类中还有两个非常重要的实例方法: getReadableDatabase()和getWritableDatabase()方法。这 两个方法都可以创建或打开一个现有的数据库,并返回一个 可对数据库进行读写操作的对象。
• SQLiteOpenHelper帮助类中还有两个构造方法可供重写,一 般使用参数少一点的构造方法即可。这个构造方法中接收4 个参数,第一个参数是Context,必须要有它才能对数据库 进行操作;第二个参数是数据库名,创建数据库时使用的就 是这里指定的名称;第三个参数允许我们在查询数据的时候 返回一个自定义的Cursor,一般都是传入null;第四个参数 表示当前数据库的版本号,可用于对数据库进行升级操作。
资料搜集
7.4 SQLite数据库存储
• SQLite数据库比传统的数据库更加适用于嵌入式系统,因为 它占用空间非常少,运行高效可靠,可移植性好,并且提供 了零配置(zero-configuration)运行模式。
• SQLite数据库的优势在于其嵌入到使用它的应用程序中。这 样不仅提高了运行效率,而且屏蔽了数据库使用和管理的复 杂性,程序仅需要进行最基本的数据操作,其它操作可以交 给进程内部的数据库引擎完成。
位置
类型+名称
1 String table 2 String[] columns
3 String selection 4 String[]
selectionArgs 5 String groupBy 6 String having 7 String orderBy
对应 SQL 部分
说明
from table_name select column1,column2 where column=value
• (1)创建一个Android应用程序,将下载的jar文件拷贝到 app/libs目录里,然后右键点击这个包,在弹出的菜单中选 择“Add As Library”选项,在弹出的对话框中点击“确定” 按钮即可。 打开app/build.gradle文件,在dependencies 闭包中看到自动添加了如下内容:
7.4.2 升级数据库
• 当我们需要对数据库中的表进行删除或增加时,就可以使用 SQLiteOpenHelper帮助类中onUpgrade()方法。
7.4.3 添加数据
• 对数据的操作无非有四种,即CRUD,其中C代表添加 (Create),R代表查询(Retrieve),U代表更新 (Update),D代表删除(Delete)。Android提供了一系列 的辅助性方法,使得在Android中不去编写SQL语句,也能轻 松完成所有的CRUD操作。