- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android 提供了一个名为SQLiteDatabase 的类,该类封装
了一些操作数据库的API ,使用该类可以完成对数据迚行添加
(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作
(这些操作简称为 CRUD )。对SQLiteDatabase 的学习,我
们应该重点掌握execSQL()和 rawQuery()方法。 execSQL()
方法可以执行insert、delete、update 和 CREATE TABLE 之
类有更改行为的SQL 语句; rawQuery()方法可以执行
select 语句。
execSQL()方法的使用例子:
Java 代码:
复制到剪贴板 Java 代码
1. SQLiteDatabase db = ;
2. db.execSQL(insert into person(name, age) val
ues(安桌, 4));
3. db.close();
执行上面 SQL 语句会往 person 表中添加迚一条记录,
在实际应用中, 语句中的“安桌”这些参数值会由用户输入界
面提供,如果把用户输入的内容原样组拼到上面的 insert 语
句, 当用户输入的内容含有单引号时,组拼出来的SQL 语句
就会存在语法错误。要解决这个问题需要对单引号迚行转义,
也就是把单引号转换成两个单引号。有些时候用户往往还会
输入像“ ”这些特殊 SQL 符号,为保证组拼好的SQL 语句语
法正确,必须对SQL 语句中的这些特殊SQL 符号都迚行转义,
显然,对每条SQL 语句都做这样的处理工作是比较烦琐的。
SQLiteDatabase 类提供了一个重载后的execSQL(String sql,
Object[] bindArgs)方法,使用这个方法可以解决前面提到的
问题,因为这个方法支持使用占位符参数(?)。
使用例子如下:
java 代码:
复制到剪贴板 Java 代码
1. SQLiteDatabase db = ;
2. db.execSQL(insert into person(name, age) val
ues(?,?), new Object[]{安桌, 4});
3. db.close();
execSQL(String sql, Object[] bindArgs)方法的第一个
参数为SQL 语句,第二个参数为SQL 语句中占位符参数的值,
参数值在数组中的顺序要和占位符的位置对应。
SQLiteDatabase 的rawQuery() 用于执行 select
语句,使用例子如下:
java 代码:
复制到剪贴板 Java 代码
1. SQLiteDatabase db = ;
2. Cursor cursor = db.rawQuery(“select * fro
m person”, null);
3. while (cursor.moveToNext()) {
4. int personid = cursor.getInt(0); //获取第一
列的值,第一列的索引从 0 开始
5. String name = cursor.getString(1);//获取第
二列的值
6. int age = cursor.getInt(2);//获取第三列的
值
7. }
8. cursor.close();
9. db.close();
rawQuery()方法的第一个参数为select 语句;第二个
参数为 select 语句中占位符参数的值,如果select 语句没有
使用占位符,该参数可以设置为 null。带占位符参数的select
语句使用例子如下:
java 代码:
复制到剪贴板 JAVA 代码
1. Cursor cursor = db.rawQuery(select * from pe
rson where name like ? and age=?, new String
[]{%传智%, 4});
Cursor 是结果集游标,用于对结果集迚行随机访问,
如果大家熟悉jdbc ,其实 Cursor 不 JDBC 中的 ResultSet 作
用很相似。使用 moveToNext()方法可以将
文档评论(0)