您的位置:首页 > 产品设计 > UI/UE

Cursor query详解

2016-03-29 18:32 489 查看
SQLiteDatabase的rawQuery()用于执行select语句,使用例子如下:

<a target=_blank href="http://www.iteedu.com/handset/android/sqlitediary/SQLiteDatabase.php"><span style="background-color: rgb(246, 246, 246);">SQLiteDatabase</span></a> db= ....;
<a target=_blank href="http://www.iteedu.com/handset/android/sqlitediary/Cursor.php"><span style="background-color: rgb(246, 246, 246);">Cursor</span></a> cursor = db.rawQuery("select * from person",null);
...
cursor.close();
db.close();


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

<a target=_blank href="http://www.iteedu.com/handset/android/sqlitediary/Cursor.php"><span style="background-color: rgb(246, 246, 246);">Cursor</span></a> cursor = db.rawQuery("select * from personwhere name like ?and age=?", new String

public Cursor query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String

having,String orderBy,String limit);

参数说明:

table:数据库表的名称

columns:数据库列名称数组 写入后最后返回的Cursor中只能查到这里的列的内容

selection:查询条件

selectionArgs:查询结果

groupBy:分组列

having:分组条件

orderBy:排序列

limit:分页查询限制

Cursor:返回值,将查询到的结果都存在Cursor

Cursor是一个游标接口,每次查询的结果都会保存在Cursor中 可以通过遍历Cursor的方法拿到当前查询到的所有信息。

Cursor的方法

moveToFirst() //将Curor的游标移动到第一条

moveToLast()///将Curor的游标移动到最后一条

move(int offset)//将Curor的游标移动到指定ID

moveToNext()//将Curor的游标移动到下一条

moveToPrevious()//将Curor的游标移动到上一条

getCount() //得到Cursor 总记录条数

isFirst() //判断当前游标是否为第一条记录

isLast()//判断当前游标是否为最后一条数据

getInt(int columnIndex) //根据列名称获得列索引ID

getString(int columnIndex)//根据索引ID 拿到表中存的字段

例:读取一个集合的方法

public List<ChatMsgEntity> findMessList(String str,Integer start, Integer length)

{

List<ChatMsgEntity> jiluji = new ArrayList<ChatMsgEntity>();

// 只对读的操作的方法

SQLiteDatabase db = getReadableDatabase();

String sql="select * from "+str ;

Cursor cursor = db.rawQuery(sql,null);

cursor = db.query(str, null, null, null, null, null, null, null);

while (cursor.moveToNext())

{

int useid = cursor.getInt(cursor.getColumnIndex("useid"));

String date = cursor.getString(cursor.getColumnIndex("date"));

String content = cursor.getString(cursor.getColumnIndex("content"));

int fangxiang =cursor.getShort(cursor.getColumnIndex("dirr"));

boolean dirr;

if(fangxiang%2 ==0)

dirr=false;

else

dirr=true;

jiluji.add(new ChatMsgEntity(useid, date, content,dirr));

}

cursor.close();

db.close();

return jiluji;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: