SQLite介绍(高级).pdf

上传人:哈尼dd 文档编号:3331047 上传时间:2019-08-13 格式:PDF 页数:26 大小:1.60MB
返回 下载 相关 举报
SQLite介绍(高级).pdf_第1页
第1页 / 共26页
SQLite介绍(高级).pdf_第2页
第2页 / 共26页
SQLite介绍(高级).pdf_第3页
第3页 / 共26页
SQLite介绍(高级).pdf_第4页
第4页 / 共26页
SQLite介绍(高级).pdf_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《SQLite介绍(高级).pdf》由会员分享,可在线阅读,更多相关《SQLite介绍(高级).pdf(26页珍藏版)》请在三一文库上搜索。

1、SQLiteSQLite介绍介绍 Android平台手机应用开发技术培训 高级.第3讲 学习目标: 目标学员: 课程时长:45分钟 有Android中级基础的开发者或在校 计算机相关专业大学生 通过案例开发学习如何在Android中使用 SQLite进行存储 基础知识讲解基础知识讲解 使用adb管理SQLite 在Android中使用SQL 项目演练 课程目录课程目录 SQL扩展知识 SQL简介 SQL(Structured Query Language)结构化查询语言,是一种数据库查询 和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统 SQL 是用于访问和处理关系型数据库的标准

2、的计算机语言 SQL语言包含4个部分: 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、 DELETE(删除)语句 数据查询语言(DQL),例如:SELECT语句 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、 ROLLBACK等语句 关系数据库和SQLite DBMS数据库管理系统(database management system)是一种操纵和 管理数据库的大型软件,是用于建立、使用和维护数据库,简称 DBMS RDBMS 指的是关系型数据库管理系统 RDBMS 是

3、SQL 的基础,同样也是所有现代数据库系统的基础 SQLite是一个非常流行的嵌入式关系数据库,它提供了标准的SQL接 口,相当小的内存占用和高速的响应 SQLite的数据类型 Sqlite支持的数据类型有他自己的特色,下面是它支持的基本类型: 空(NULL):该值为空 整型(INTEGER):有符号整数,按大小被存储成1,2,3,4,6或8字节 数字( NUMERIC):数字类型 实数(REAL):浮点数,以8字节指数形式存储 文本(TEXT):字符串 二进制大对象(BOLB):通常用来保存图片,图象,视频等 字符大对象(CLOB):能够存放大量基于字符的数据,例如文章 常用SQL语法 建表

4、:create table 表名(主键名 integer primary key autoincrement, 其他列名及属性) 查询:select * from 表名 where 条件子句 group by 分组子句 havingorder by 排序子句 插入:insert into 表名(字段列表) values (值列表) 更新:update 表名 set 字段名=值 where 条件子句 删除:delete from 表名 where 条件子句 删表:drop table if exists 表名 基础知识讲解 使用使用adbadb管理管理SQLiteSQLite 在Android中

5、使用SQL 项目演练 课程目录课程目录 SQL扩展知识 使用adb管理SQLite 进入adb shell 使用cd命令进入项目所 在目录,使用ls命令可 看到该目录的文件 进入项目的databases 目录,使用ls可以看到 数据库文件jokedb 使用adb管理SQLite 使用sqlite3 jokedb命令 既可打开对应的数据库 文件 这里我们使用sqlite3的 命令.tables打印出了该 数据库中的表。最后用 .quit命令退出了sqlite管 理器 SQLite的命令,这里不详细介绍。可以使用.help命令查看帮助。 总之,使用adb可以方便的查看和管理程序中的数据库,可以方便

6、调试程序 基础知识讲解 使用adb管理SQLite 在在AndroidAndroid中使用中使用SQLSQL 项目演练 课程目录课程目录 SQL扩展知识 SQLiteDatabase的使用 用Context的openOrCreateDatabase方法建立数据库 用Context的deleteDatabase方法删除数据库 使用execSQL方法建立数据表 删除表 SQLiteDatabase mDatabase = context.openOrCreateDatabase (“jokedb”, context.MODE_PRIVATE, null); context. deleteDatab

7、ase(“jokedb”); mDatabase.execSQL(“CREATE TABLE jokes (jokeId INTEGER PRIMARY KEY AUTOINCREMENT, jokeTitle TEXT, jokeText TEXT)”); mDatabase.execSQL(“DROP TABLE jokes”); SQLiteDatabase的使用 向表中插入数据 删除表中的数据 ContentValues values = new ContentValues(); values.put(“jokeTitle”, title); values.put(“jokeText”

8、, text); mDatabase.insert(“jokes”, null, values); mDatabase.delete(“jokes”, “jokeId=1”, null); mDatabase.delete(“jokes”, “jokeId=?”, new String“1”); SQLiteDatabase的使用 更新表中的数据 查询表中的数据 ContentValues values = new ContentValues(); values.put(“jokeTitle”, title); values.put(“jokeText”, text); mDatabase.u

9、pdate(“jokes”, values, “jokeId=2”, null); Cursor cursor = mDatabase.query(“jokes”, new String“jokeTitle”,”jokeText”, “jokeId=1”, null, null, null, null); 游标Cursor的使用 SQLiteDatabase对象会把查询的结果包装在一个Cursor的子类对象中 返回。Cursor就像是位于结果集之上的一个游标,可以对结果集进行 向前、向后或随机的访问 下面是Cursor常用的方法: getCount() :返回Cursor 中的行数 moveT

10、oFirst() : 移动光标到第一行 moveToLast() :移动光标到最后一行 moveToNext() :移动光标到下一行 moveToPrevious() :移动光标到上一行 moveToPosition(int position) :移动光标到一个绝对的位置 getColumnCount():返回所有列的总数 getColumnName(int columnIndex) :从给定的索引返回列名 getColumnIndex(String columnName) :按名称返回某列的索引值, 如果不存在返回-1 SQLiteOpenHelper的使用 如果应用使用到了SQLite数据

11、库,在用户初次使用软件时,需要创建 应用使用到的数据库表结构及添加一些初始化记录 另外在软件升级的时候,也需要对数据表结构进行更新 Android系统为我们提供了一个名为SQLiteOpenHelper的类,该类用 于对数据库版本进行管理 该类是一个抽象类,必须实现onCreate和onUpgrade两个关键方法才 能使用 基础知识讲解 使用adb管理SQLite 在Android中使用SQL 项目演练项目演练 课程目录课程目录 SQL扩展知识 在笑话大全中使用SQL存储 创建笑话实体类Joke 实现继承自SQLiteOpenHelper类的DBHelper类,用于创建和管理本 应用的数据库

12、public class Joke public int joke_id; public String joke_title; public String joke_text; public void onCreate(SQLiteDatabase db) db.execSQL(“CREATE TABLE jokes (jokeId INTEGER PRIMARY KEY AUTOINCREMENT, jokeTitle TEXT,jokeText TEXT)“); 在笑话大全中使用SQL存储 在DatabaseManager类中完成数据库相关的常量定义 在DatabaseManager类中实

13、现笑话的CRUD操作 添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作 (这些操作简称为CRUD) 请参考DatabaseManager的getJokes方法,它使用了Cursor来遍历 查询结果集 public static final String DATABASE_NAME = “jokedb“; public static final String TABLE_NAME = “jokes“; public static final String JOKE_ID = “jokeId“; public static final String J

14、OKE_TITLE = “jokeTitle“; public static final String JOKE_TEXT = “jokeText“; 在笑话大全中使用SQL存储 为数据库中的笑话增加列表展示界面JokeDBListView 编写添加新笑话的界面JokeDBAdd以及编辑原有笑话的界面 JokeDBEdit,它们都是用add_or_edit.xml作为视图 为JokeDBAdd类编写功能,在按钮点击事件中将两个EditText中的内 容利用DatabaseManager. addJoke方法保存为新笑话 为JokeDBEdit类编写功能,首先需要将JokeDBListView中

15、传递过来的 笑话展示到界面中。在按钮点击事件中将两个EditText中的内容利用 DatabaseManager. updateJoke方法更新原有的笑话 自此,所有功能基本上开发完毕。最后在JokeListView的菜单中增加 一个“笑话数据库”的选项,以此来进入JokeDBListView 在笑话大全中使用SQL存储 选择“笑话数据库”可进入数据库模块 可使用“增加”功能添加笑话 已有的笑话会存在于列表中,长按列表 项可以弹出菜单,包含修改和删除功能 可以使用增加,删除和修改对笑话库进 行管理 基础知识讲解 使用adb管理SQLite 在Android中使用SQL 项目演练 课程目录课程目

16、录 SQLSQL扩展知识扩展知识 数据库事务的概念 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执 行的一系列操作 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不 会永久更新面向数据的资源 通过将一组相关操作组合为一个要么全部成功要么全部失败的单元, 可以简化错误恢复并使应用程序更加可靠 事务的操作可由事务开始、事务读写、事务提交、事务回滚等基本操 作组成 事务开始,表示事务开始执行 事务读写,表示组成事务的多个数据库操作单元的执行过程 事务提交,表示事务完成所有数据操作,保存操作结果,事务成功完 成 事务回滚,表示事务未完成所有操作,放弃之

17、前的操作,重新返回到 事务开始的状态,它标志着事务的撤销 用SQLiteDatabase编写数据库事务 使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行 到endTransaction() 方法时会检查事务的标志是否为成功,如果为成功则提 交事务,否则回滚事务。 必须在endTransaction()方法之前使用setTransactionSuccessful() 设置事务 的标志为成功,如果不调用setTransactionSuccessful() ,默认会回滚事务。 下面的例子中包含了两个execSQL方法,其中任何一个失败掉,都将回滚数

18、 据,因此不会在数据库中产生不完整的数据。 db.beginTransaction(); try db.execSQL(“INSERT INTO table (_id,title) values(0,笑话)“;); db.execSQL(“UPDATE table SET title =笑话1 WHERE _id = 0“;); db.setTransactionSuccessful(); catch (Exception e) e.printStackTrace(); finally db.endTransaction(); 总结 使用adb管理SQLite Android中如何创建并使用数据库 SQL的基本用法 本课程到此结束,谢谢!

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

当前位置:首页 > 建筑/环境 > 装饰装潢


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