AndroidSQLite.ppt_第1页
AndroidSQLite.ppt_第2页
AndroidSQLite.ppt_第3页
AndroidSQLite.ppt_第4页
AndroidSQLite.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android程序设计 SQLLite 主要内容及重难点 SQLite简介SQLiteOpenHelper使用方法使用adb访问SQLite使用Cursor提取数据数据的增删改查操作 重点 SQLite简介 SQLite是一个轻量级的 嵌入式的 关系型数据库 支持SQL语言 开源 可移植性好 官网 http www sqlite org SQLite基本上符合SQL 92标准 和其他的主要SQL数据库没什么区别 它的优点就是高效 Android运行时环境包含了完整的SQLite 一般的数据库采用的是固定的静态数据类型 SQLite采用动态数据类型 创建一个表时 可以在CREATETABLE语句中指定某列的数据类型 但是你可以把任何数据类型放入任何列中 当某个值插入到数据库时 SQLite将会检查它的类型 如果该类型与关联的列不匹配 SQLite则会尝试将该值转换成该列的类型 如果不能转换 则该值将作为本身的类型存储 比如可以把一个字符串 String 放入INTEGER列 SQLite称这为 弱类型 但有一个特例 如果是INTEGERPRIMARYKEY 则其他类型不会被转换 会报一个 datatypemissmatch 的错误 SQLite简介 SQLite对事务的支持在事务处理方面 SQLite通过数据库级上的独占性和共享锁来实现独立事务处理 这意味着多个进程可以在同一s时间从同一数据库读取数据 但只有一个可以写入数据 在某个进程或线程想数据库执行写操作之前 必须获得独占锁 在获得独占锁之后 其他的读或写操作将不会再发生SQLite不支持的SQL标准SQLite不支持一些标准的SQL功能 特别是外键约束 FOREIGNKEYconstrains 嵌套transcaction和RIGHTOUTERJOIN和FULLOUTERJOIN 还有一些ALTERTABLE功能 除了上述功能外 SQLite是一个完整的SQL系统 拥有完整的触发器等 数据库存储在data data databases 下 SQLite数据类型 基本数据类型NULL空值INTEGER带符号的整型REAL浮点型TEXT字符串文本BLOB二进制对象但实际上 sqlite3也接受如下的数据类型 smallint16位元的整数 interger32位元的整数 decimal p s p精确值和s大小的十进位整数 精确值p是指全部有几个数 digits 大小值 s是指小数点後有几位数 如果没有特别指定 则系统会设为p 5 s 0 float32位元的实数 double64位元的实数 SQLite数据类型 char n n长度的字串 n不能超过254 varchar n 长度不固定且其最大长度为n的字串 n不能超过4000 graphic n 和char n 一样 不过其单位是两个字元double bytes n不能超过127 这个形态是为了支援两个字元长度的字体 例如中文字 vargraphic n 可变长度且其最大长度为n的双字元字串 n不能超过2000date包含了年份 月份 日期 time包含了小时 分钟 秒 timestamp包含了年 月 日 时 分 秒 千分之一秒 datetime包含日期时间格式 必须写成 2010 08 05 不能写为 2010 8 5 否则在读取时会产生错误 Android平台下数据库相关类 SQLiteOpenHelper抽象类 通过从此类继承实现用户类 来提供数据库创建 打开 关闭等操作 SQLiteDatabase数据库访问类 执行对数据库的插入记录 查询记录等操作 SQLiteCursor查询结构操作类 用来访问查询结果中的记录 SQLiteOpenHelper类 Android提供了SQLiteOpenHelper帮助创建 管理数据库 在开发需要继承SQLiteOpenHelper类SQLiteOpenHelper类的常用方法getReadableDatabase 以只读方式打开数据库 应用于对数据的查询getWritableDatabase 以只读写方式打开数据库 应用于对数据的添加 修改和删除onCreate SQLiteDatabasedb 创建数据库时的回调函数onOpen SQLiteDatabasedb 打开数据库时的回调函数onUpgrade SQLiteDatabasedb intoldVersion intnewVersion 更新数据库时的回调函数close 关闭数据库 创建数据库 SQLiteOpenHelper类根据开发应用程序的需要 封装了创建和更新数据库使用的逻辑 SQLiteOpenHelper的子类 一般需要实现如下三个方法publicDBHelper Contextcontext Stringname CursorFactoryfactory intversion publicvoidonCreate SQLiteDatabasedb 使用execSQL 方法执行DDL语句 publicvoidonUpgrade SQLiteDatabasedb intoldVersion intnewVersion 创建表和索引 当创建表指定主键是SQLite会自动为主键添加索引如 db execSQL createtableuser idINTEGERPRIMARYKEYAUTOINCREMENT namevarchar 20 addressTEXT 更新数据的方法 SQLlite提供了两种更新数据的方式 使用execSQL方法执行INSERT UPDATE DELETE等语句来更新表的数据 如 db execSQL INSERTINTOuser name address VALUES henen 2046 使用SQLiteDatabase对象的insert update delete 方法 这些方法把SQL语句的一部分作为参数 Google推荐使用的方式 如 ContentValuescv newContentValues cv put name rose cv put address ShangHai sdb insert 表名 null cv 查询数据的方法 SQLite提供了两种查询数据的方式 使用rawQuery 直接调用SELECT语句 如果查询是动态的 使用rawQuery就会非常复杂 如 publicCursorrawQuery returnmDataBase rawQuery select fromuserwhereid andname newString 1 LiuMing 使用SELECT语句段构建查询 SELECT语句内容做为query 方法的参数 Google推荐使用的方式 如 使用游标 使用游标提取数据不管如何执行查询 都会返回一个CursorCurosr主要方法如下 getCount 获得结果集中有多少记录 moveToFirst 移动到第一行 moveToNext 移动到下一行 可遍历所有记录 isAfterLast 判断是否最后一行 getColumnNames 返回字段名 getColumnCount 返回字段号 getString getInt 得到给定字段当前记录的值 requery 重新执行查询得到游标 close 释放游标资源 publicCursorquery String columns name address 第二个参数 要查询的列名 第三个参数 where语句 第三个参数 where语句中占位符的值 第四个参数 对查询结果进行分组 第五个参数 对分组结果进行限制 第六个参数 对查询结果进行排序returnmDataBase query USE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论