第07章Android中的数据存储3课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第07章Android中的数据存储3课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 07 Android 中的 数据 存储 课件
- 资源描述:
-
1、第第7 7章章 AndroidAndroid中的数据存取中的数据存取 在Android平台上,嵌入了一个轻量级的关系型数据库SQLite。SQLite并没有包含大型客户/服务器数据库(如Oracle、SQL Server)的所有特性,但它包含了操作本地数据的所有功能,简单易用、反应快。SQLite内部只支持 NULL、INTEGER、REAL(浮点数)、TEXT(字符串文本)和BLOB(二进制对象)这五种数据类型,但实际上SQLite也接受varchar(n)、char(n)、decimal(p,s)等数据类型,只不过在运算或保存时会转成上面对应的数据类型。SQLite最大的特点是可以把各种类
2、型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以把字符串类型的值存入INTEGER类型字段中,或者在布尔型字段中存放数值类型等。但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数,当向这种字段保存除整数以外的数据时,将会产生错误。由于SQLite允许存入数据时忽略底层数据列实际的数据类型,因此SQLite在解析建表语句时,会忽略建表语句中跟在字段名后面的数据类型信息。create table person_tb(id integer primary key autoincrement,name varchar(20),因此在编写建表语
3、句时可以省略数据列后面的类型声明。查询语句:select*from 表名 where 条件子句 group by 分组字句 having.order by 排序子句 如:select*from person分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录 select*from Account limit 5 offset 3 插入语句:insert into 表名(字段列表)values(值列表)。如:insert into person(name,age)values(张三,26)更新语句:update 表名 set 字段名=值 where 条件子句。如:updat
4、e person set name=李四 where id=10删除语句:delete from 表名 where 条件子句。如:delete from person where id=10常见SQL标准语句7.3.1 SQLiteSQLite数据库简介数据库简介 SQLiteOpenHelper是Android提供的管理数据的工具类,主要用于数据库的创建、打开和版本更新。一般用法是创建SQLiteOpenHelper类的子类,并扩展它的onCreate()和onUpgrade()方法(这两个方法是抽象的,必须扩展),选择性的扩展它的onOpen()方法。SQLiteDatabase getR
5、eadableDatabase():以读写的方式打开SQLiteDatabase对象,内部调用getWritableDatabase()方法;SQLiteDatabase getWritableDatabase():以写的方式打开SQLiteDatabase对象,一旦打开成功,将会缓存该数据库对象;abstract void onCreate(SQLiteDatabase db):当数据库第一次被创建的时候调用该方法;abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion):当数据库需要更新的时候调用该方法
6、;调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取SQLiteDatabase实例,如果数据库不存在,Android系统会自动生成一个数据库,然后调用onCreate()方法,在onCreate()方法里生成数据库表结构及添加应用需要的初始化数据。onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号,数据库的版本是由开发人员控制的,假设数据库现在的版本是1,由于业务的变更,修改了数据库表结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为了实现这一目
7、的,可以把数据库版本设置为2,并在onUpgrade()方法里实现表结构的更新。onUpgrade()方法可以根据原版本号和目标版本号进行判断,然后作出相应的表结构及数据更新。7.3.2 SQLiteSQLite数据库相关类数据库相关类 SQLiteDatabase是Android提供的代表数据库的类(底层就是一个数据库文件),该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作。对SQLiteDatabase的学习,应该重点掌握execSQL()和rawQuery()方法。execSQL()
8、方法可以执行insert、delete、update和create table之类有更改行为的SQL语句;而rawQuery()方法用于执行select语句。execSQL(String sql,Object bindArgs):执行带占位符的SQL语句,如果sql语句中没有占位符,则第二个参数可传null;execSQL(String sql):执行SQL语句;rawQuery(String sql,String selectionArgs):执行带占位符的SQL查询。7.3.2 SQLiteSQLite数据库相关类数据库相关类 SQLiteDatabase还专门提供了对应于添加、删除、更新
9、、查询的操作方法:insert()、delete()、update()和query()。例如:Cursor query(String table,String columns,String selection,String selectionArgs,String groupBy,String having,String orderBy,String limit)方法各参数的含义table:表名,如果是多表联合查询,可以用逗号将两个表名分开;columns:要查询的列名,可以是多列。selection:查询条件子句,相当于select语句where关键字后面的部分,在条件子句允许使用占位符“?
10、”。selectionArgs:对应于selection语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。groupBy:相当于select语句group by关键字后面的部分having:相当于select语句having关键字后面的部分orderBy:相当于select语句order by关键字后面的部分,如:personid desc,age asc;limit:指定偏移量和获取的记录数,相当于select语句limit关键字后面的部分。Cursor接口主要用于存放查询记录的接口,Cursor是结果集游标,用于对结果集进行随机访问,如果熟悉JDBC,可发现
11、Cursor与JDBC中的ResultSet作用很相似,提供了如下方法来移动查询结果的记录指针。move(int offset):将记录指针向上或向下移动指定的行数。offset为正数就向下移动,为负数就向上移动;moveToNext()方法可以将游标从当前记录移动到下一记录,如果已经移过了结果集的最后一条记录,返回结果为false,否则为true;moveToPrevious()方法用于将游标从当前记录移动到上一记录,如果已经移过了结果集的第一条记录,返回值为false,否则为true;moveToFirst()方法用于将游标移动到结果集的第一条记录,如果结果集为空,返回值为false,否则
12、为true;moveToLast()方法用于将游标移动到结果集的最后一条记录,如果结果集为空,返回值为false,否则为true。7.3.2 SQLiteSQLite数据库相关类数据库相关类使用SQLiteDatabase进行数据库操作的步骤如下:获取SQLiteDatabase对象,它代表了与数据库的连接;调用SQLiteDatabase的方法来执行SQL语句;操作SQL语句的执行结果;关闭SQLiteDatabase,回收资源。7.3.2 SQLiteSQLite数据库相关类数据库相关类 该程序实现备忘录功能,用于记录生活中一些重要事情,并提供查询功能,可按条件进行模糊查询。可输入主题、相
13、关内容以及选择时间,单击添加按钮时,会将相关数据写入数据库,单击查询按钮时,会根据主题、内容以及时间进行精确和模糊查询。7.3.2备忘录实例备忘录实例程序清单:Mementoreslayoutactivity_main.xml 垂直线性布局表格布局,3行2列左边距10dp显示主题标签文本大小为20sp输入主题的文本编辑框7.3.2备忘录实例备忘录实例 程序清单:Mementoreslayoutactivity_main.xml7.3.2备忘录实例备忘录实例 程序清单:Mementoreslayoutactivity_main.xml7.3.2备忘录实例备忘录实例程序清单:Mementoresl
展开阅读全文