对SQLiteDatabase的学习

SQLiteDatabase的学习,我们应该重点掌握execSQL()rawQuery()方法。 execSQL()方法可以执行insertdeleteupdateCREATE TABLE之类有更改行为的SQL语句; rawQuery()方法可以执行select语句。

execSQL()方法的使用例子:

SQLiteDatabase db ....;

db.execSQL("insert into person(name, age) values('传智播客', 4)");

db.close();

SQLiteDatabase类提供了一个重载后的execSQL(String sql, Object[] bindArgs)方法,使用这个方法可以解决前面提到的问题,因为这个方法支持使用占位符参数(?)。使用例子如下:

SQLiteDatabase db ....;

db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"传智播客", 4}); 

db.close();

execSQL(String sql, Object[] bindArgs)方法的第一个参数为SQL语句,第二个参数为SQL语句中占位符参数的值,参数值在数组中的顺序要和占位符的位置对应。

 

SQLiteDatabaserawQuery() 用于执行select语句,使用例子如下:
SQLiteDatabase db ....;

Cursor cursor db.rawQuery(“select from person”, null);

while (cursor.moveToNext()) {

int personid cursor.getInt(0); //获取第一列的值,第一列的索引从0开始

String name cursor.getString(1);//获取第二列的值

int age cursor.getInt(2);//获取第三列的值

}

cursor.close();

db.close(); 

rawQuery()方法的第一个参数为select语句;第二个参数为select语句中占位符参数的值,如果select语句没有使用占位符,该参数可以设置为null。带占位符参数的select语句使用例子如下:

Cursor cursor db.rawQuery("select from person where name like and age=?", new String[]{"%传智%", "4"});

 

Cursor是结果集游标,用于对结果集进行随机访问,如果大家熟悉jdbc, 其实CursorJDBC中的ResultSet作用很相似。使用moveToNext()方法可以将游标从当前行移动到下一行,如果已经移过了结果集的最后一行,返回结果为false,否则为true。另外Cursor 还有常用的moveToPrevious()方法(用于将游标从当前行移动到上一行,如果已经移过了结果集的第一行,返回值为false,否则为true )、moveToFirst()方法(用于将游标移动到结果集的第一行,如果结果集为空,返回值为false,否则为true )和moveToLast()方法(用于将游标移动到结果集的最后一行,如果结果集为空,返回值为false,否则为true ) 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值