14数据存储-SQLite..doc

上传人:scccc 文档编号:13496089 上传时间:2022-01-10 格式:DOC 页数:2 大小:21KB
返回 下载 相关 举报
14数据存储-SQLite..doc_第1页
第1页 / 共2页
14数据存储-SQLite..doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《14数据存储-SQLite..doc》由会员分享,可在线阅读,更多相关《14数据存储-SQLite..doc(2页珍藏版)》请在三一文库上搜索。

1、数据库存储 受性能以及手机屏幕限制,An droid 不采用大型数据库作为存储, 采用第三方, 使用 C 语言开发 的 SQLite 数据库.关于 SQLite 数据库的介绍, 详见 百度。 ACID:数据库事务,原子性,一致性,独立性和持久性 sqlite.exe 或 sqlite.dll An droid 连接 SQLite 数据库,需要继承 SQLiteOpe nH elper 抽象类,重写 on Create/o nUpgreade 方法 on Create 当数据库不存在时会调用该方法,一般用于建 立数据库表结构等操作 onUpgreade 当涉及数据库更新时重写该方法,需要提供版

2、本号 SQLiteDatabase getReadableDatabase 获取一个读的 SQLite 数据库 SQLiteDatabase getWriteableDatabase 获取一个写的 SQLite 数据库构造方法 SQLiteOpe nH elper(C on text ctx,Stri ng n ame,SQLiteDatabase.CursorFactory fac,i nt version version 代表当前数据库的版本号,从 1 开始 - - ORM:对象/关系映射,在面向对象语言开发过程中,经常要 与数据库进行交互,为了将关系型数据库中 数据正常用程序结构来表达,

3、使用 table-class table Row - class object 放 大到开发设计时: 正向工程:class-s table 先设计程序结构,再设计数据存储 逆向工程:table-class 先设计数据存储, 再设计类 SQLiteDataBase androic 提供用于访问 SQLite 数据库的类, 定义了一系列 的方法 静态方法用于打开并获取数据库 static SQLiteDataBase create( static SQLiteDataBase ope nCreate( static SQLiteDataBase ope nO rCreat 在获取 SQLiteDa

4、taBase 的对象时,必须传入其内部类对象 CursorFactory 的对象,可传入 null 使用内部的默认实现 操作数据库方法 增,删,改 long insert( long update( long delete(在进行 insert/update 时,需要借助 android.content.ContentValues 寸象。 ContentValues 类似 Hashmap,键/值存储,存储基本类型以及字符串,键必须是字 符串类型,指代数据列名 void execSQL( SQLiteOpenHelper 抽象类圭寸装获取 SQLite 数据的方法,提供了同步等安全性的操作,继承

5、它重写 on Create/o nUpgrade 即可 例:ORM Table TStdue nt(no,n ame - class Stude nt(Stri ng stuNo,Stri ng stuName db 为 SQLiteDataBase 数据库对象 增加操作 Student stu = new Student(1OO,测试 1; Conten tValues values = new Conten tValues(; values.put(” no,stu.getStuNo(; values.put(” name,stu.getStuName(; I ong row = db.i

6、 nsert(TStude nt, nu ll,values; n ull 表示不是空行意思 String sql = insert into TStudent values(?,?; String arg s=stu.getStuNo(,stu.getStuName(; db.execSQL(sql,args; - - 更新操作 student stu = new Student(100,更改;ContentValues values = new ContentValues(; values.put(”name,stu.getStuName(; no=! wheret 条件, 最后的一个实参

7、代表参数数组 long row = db.update(TStude nt,values, no=?, new Stringstu.getStuNo(; String sql = update TStudent set name=? where no=?; String args=stu.getStuName(,stu.getStuNo(; db.execSQL(sql,args; - - 删除操作 Student stu = new Student(100,更改; db.delete(TStudent,no=?,new Stringstu.getStuNo(; String sql = de

8、lete from TStudent where no=?; String args = new Stringstu.getStuNo(; db.execSQL(sql,args; = 查询操作 Cursor query(String table, String columns, String selection, String selectionArgs, String groupBy, String having, String orderBy, String limit; /以对象的形式查询结果, SQL语句的拼装由系统完成 Cursor rawQuery(String sql,Stri

9、ng args; 手动拼装 SQL 语句,并给定参数 Cursor 数据查 询结果,SQLite 查询结果是一个类似游标的结构返回的,可以通过方法获取列的 数量,但不能获取行的 数量,必须通过 moveToXXX 方法进行行的移动才能读取 数据(初始时游标指针指向结果集以外) 重要的方法 int getColumnCount( XXX getXXX(int columnlndex; /通过列的序号以对应数据类型获取数据 boolean moveToNext(;移动至 U 下一行 boolean moveToFirst(; /移动至 U 第一行 boolean moveToLast(; /移动到最后一行

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1