Cursor query详解
2016-03-29 18:32
489 查看
SQLiteDatabase的rawQuery()用于执行select语句,使用例子如下:
rawQuery()方法的第一个参数为select语句;第二个参数为select语句中占位符参数的值,如果select语句没有使用占位符,该参数可以设置为null。带占位符参数的select语句使用例子如下:
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;
}
<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;
}
相关文章推荐
- IOS开发-UI学习-delegate(代理)的使用,键盘消失
- UIView背景图片设置一些技巧
- iOS Build Question
- build/envsetup.sh
- 【iOS】UITextView 自动跳动的问题
- 【杭电】[1242]Rescue
- 51Nod 算法马拉松12 Rikka with sequences
- hdu 2062 Subset sequence
- 关于xmlhttprequest的readystate属性的五个状态
- 在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)
- XMLHTTPRequest状态status详解
- Range Sum Query - Mutable
- UISearchBar改变输入框的背景色
- IOS学习之——UINevigationController 导航控制器
- ios生成guid代码
- IOS学习之——UIPickerView 点菜系统
- This certificate has an invalid issuer
- Java 1.8 ASM ClassReader failed to parse class file - probably due to a new Java class file version
- iOS could not build module
- IOS学习之——UITableView 实现数据源的方法