【Android论文栏目提醒】:网学会员鉴于大家对Android论文十分关注,论文会员在此为大家搜集整理了“Android开发学习笔记:数据存取之SQLite浅析 - 教育”一文,供大家参考学习
Android 开发学习笔记:数据存取之 SQLite 浅析一.SQLite 的介绍1.SQLite 简介 SQLite 是一个嵌入式数据库引擎,针对内存等资源有限的设备(如手机、 PDA、MP3)提供的一种高效的数据库引擎。
它有如下特征:轻量级、独立性、隔离性、跨平台、多语言接口、安全性。
SQLite 数据库没有服务器进程。
所有的内容包含在同一个单文件中。
该文件是跨平台的,可以自由复制。
基于其自身的先天优势, SQLite 在嵌入式领域得到广泛应用。
2.SQLite 数据类型 一般数据采用的固定的静态数据类型,而 SQLite 采用的是动态数据类型,会根据存入值自动判断。
SQLite 具有以下五种数据类型: NULL: 这个值为空值 INTEGER: 值被标识为整数依据值的大小可以依次被存储为12345678. REAL: 所有值都是浮动的数值被存储为8字节的 IEEE 浮动标记序号. TEXT: 值为文本字符串使用数据库编码存储TUTF-8 UTF-16BE or UTF-16-LE. BLOB: 值是 BLOB 数据块,以输入的数据格式进行存储。
如何输入就如何存储不改 变格式. 一、SQLiteDatabase 的介绍
Android 提供了创建和是用 SQLite 数据库的 API。
SQLiteDatabase 代表一个数据库对象,提供了操作数据库的一些方法。
在
Android 的 SDK 目录下有 sqlite3工具,我们可以利用它创建数据库、创建表和执行一些 SQL 语句。
下面是 SQLiteDatabase 的常用方法。
SQLiteDatabase 的常用方法 方法名称 方法描述 openOrCreateDatabaseString 打开或创建数据库pathSQLiteDatabase.CursorFactory factory insertString tableString nullColumnHackContentValues 添加一条记录values deleteString tableString whereClauseString 删除一条记录whereArgs queryString tableString columnsString 查询一条记录selectionString selectionArgsString groupByStringhavingString orderBy updateString tableContentValues valuesString 修改记录whereClauseString whereArgs execSQLString sql 执行一条 SQL 语句 close 关闭数据库 1、打开或者创建数据库 在
Android 中 以 使 用 SQLiteDatabase 的 静 态 方 法 openOrCreateDatabaseStringpathSQLiteDatabae.CursorFactory factory打开或者创建一个数据库。
它会自动去检测是否存在这个数据库,如果存在则打开,不存在则创建一个数据库;创建成功则返回一个SQLiteDatabase 对象,否则抛出异常 FileNotFoundException。
下面是创建名为“stu.db”数据库的代码: 1 dbSQLiteDatabase.openOrCreateDatabase/data/data/com.lingdududu.db/databases/stu.dbnull 2、创建表 创建一张表很简单。
首先,编写创建表的 SQL 语句,然后,调用 SQLiteDatabase 的execSQL方法来执行 SQL 语句便可以创建一张表了。
下面的代码创建了一张用户表,属性列为:_id(主键并且自动增加)、sname(学生姓名)、snumber(学号) 2 private void createTableSQLiteDatabase db 3 4 //创建表 SQL 语句 5 String stu_tablecreate table usertable_id integer primary keyautoincrementsname textsnumber text 6 7 //执行 SQL 语句 8 db.execSQLstu_table 9 3、插入数据 插入数据有两种方法: ①SQLiteDatabase 的 insertString tableString nullColumnHackContentValuesvalues方法,参数一是表名称,参数二是空列的默认值,参数三是 ContentValues 类型的一个封装了列名称和列值的 Map; ②编写插入数据的 SQL 语句,直接调用 SQLiteDatabase 的 execSQL方法来执行 第一种方法的代码: 10 private void insertSQLiteDatabase db 11 12 //实例化常量值 13 ContentValues cValue new ContentValues 14 15 //添加用户名 16 cValue.putsnamexiaoming 17 18 //添加密码 19 cValue.putsnumber01005 20 21 //调用 insert方法插入数据 22 db.insertstu_tablenullcValue 23 第二种方法的代码: 24 private void insertSQLiteDatabase db 25 26 //插入数据 SQL 语句 27 String stu_sqlinsert into stu_tablesnamesnumbervaluesxiaoming01005 28 29 //执行 SQL 语句 30 db.execSQLsql 31 4、删除数据 删除数据也有两种方法: ① 调 用 SQLiteDatabase 的 deleteString tableString whereClauseStringwhereArgs方法,参数一是表名称,参数二是删除条件,参数三是删除条件值数组; ②编写删除 SQL 语句,调用 SQLiteDatabase 的 execSQL方法来执行删除。
第一种方法的代码: 32 private void deleteSQLiteDatabase db 33 34 //删除条件 35 String whereClause _id 36 37 //删除条件参数 38 String whereArgs String.valueOf2 39 40 //执行删除 41 db.deletestu_tablewhereClausewhereArgs 42 第二种方法的代码: 43 private void deleteSQLiteDatabase db 44 45 //删除 SQL 语句 46 String sql delete from stu_table where _id 6 47 48 //执行 SQL 语句 49 db.execSQLsql 50 5、修改数据 修改数据有两种方法: ① 调 用 SQLiteDatabase 的 updateString tableContentValues valuesStringwhereClause String whereArgs方法。
参数是表名称,参数是更行列 ContentValues类型的键值对(Map),参数是更新条件(where 字句),参数是更新条件数组。
②编写更新的 SQL 语句,调用 SQLiteDatabase 的 execSQL 执行更新。
第一种方法的代码: 51 private void updateSQLiteDatabase db 52 53 //实例化内容值 54 ContentValues values new ContentValues 55 56 //在 values 中添加内容 57 values.putsnumber101003 58 59 //修改条件 60 String whereClause id 61 62 //修改添加参数 63 String whereArgsString.valuesOf1 64 65 //修改 66 db.updateusertablevalueswhereClausewhereArgs 67 第二种方法的代码: 68 private void updateSQLiteDatabase db 69 70 //修改 SQL 语句 71 String sql update stu_table set snumber 654321 where id 1 72 73 //执行 SQL 74 db.execSQLsql 75 6、查询数据 当我们使用 SQLiteDatabase.query 在
Android 中查询数据是通过 Cursor 类来实现的,方法时,会得到一个 Cursor 对象,Cursor 指向的就是每一条数据。
它提供了很多有关查询的方法,具体方法如下:public Cursor queryString tableString columnsString selectionStringselectionArgsString groupByString havingString orderByString limit 各个参数的意义说明: ①table:表名称 ②columns:列名称数组 ③selection:条件字句,相当于 where ④selectionArgs:条件字句,参数数组 ⑤groupBy:分组列 ⑥having:分组条件 ⑦orderBy:排序列 ⑧limit:分页查询限制 ⑨Cursor:返回值,相当于结果集 ResultSet Cursor 是一个游标接口,提供了遍历查询结果的方法,如移动指针方法 move,获得列值方法 getString等. Cursor 游标常用方法 方法名称 方法描述 getCount 获得总的数据项数 isFirst 判断是否第一条记录 isLast 判断是否最后一条记录 moveToFirst 移动到第一条记录 moveToLast 移动到最后一条记录 moveint offset 移动到指定记录 moveToNext 移动到下一条记录 moveToPrevious 移动到上一条记录 getColumnIndexOrThrowString 根据列名称获得列索引columnName getIntint columnIndex 获得指定列索引的 int 类型值 getStringint columnIndex 获得指定列缩影的 String 类型值 下面就是用 Cursor 来查询数据库中的数据,具体代码如下: 76 private void querySQLiteDatabase db 77 78 79 //查询获得游标 80 Cursor cursor db.queryusertablenullnullnullnullnullnull 81 82 //判断游标是否为空 83 ifcursor.moveToFirst 84 85 //遍历游标 86 forint i0i