用过query语句,
查资料,说查条数,最有效率的为:select count(1)from table
,在android里,单独为了select,封装了,rawquery.
cursor的基本知识
表面定义为“光标”,实际上可以理解为“数据链指针”.
cursor用行和列(column)构成,是每行的集合。使用前必须知道每列的名称和数据类型(见下常用应用场景)。
关于 Cursor 的重要方法:
· close() 关闭游标,释放资源
· copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) 在缓冲区中检索请求的列的文本,并将其存储。
· getColumnCount() 返回所有列的总数
· getColumnIndex(String columnName) 返回指定列的名称,如果不存在返回-1
· getColumnIndexOrThrow(String columnName) 从零开始返回指定列名称,如果不存在将抛出IllegalArgumentException 异常。
· getColumnName(int columnIndex) 从给定的索引返回列名
· getColumnNames() 返回一个字符串数组的列名
· getCount() 返回Cursor 中的行数
· moveToFirst() 移动光标到第一行
· moveToLast() 移动光标到最后一行
· moveToNext() 移动光标到下一行
· moveToPosition(int position) 移动光标到一个绝对的位置
· moveToPrevious() 移动光标到上一行
但是getcount,我一直也没弄懂;
直接上,可以用的代码吧;
public long findMaxId(String table) {
// TODO Auto-generated method stub
SQLiteDatabase database = dbOpenHelper.getWritableDatabase();
//Cursor cursor = database.query(table, null, null, null, null, null, " _id DESC");
Cursor cursor= database.rawQuery("select count(2) from "+table,null);
// cursor.getCount();
cursor.moveToFirst();
long count = cursor.getLong(0);
cursor.close();
return count;
}