Cursor源码梳理
来源:互联网 发布:倩女幽魂手游 mac登陆 编辑:程序博客网 时间:2024/05/17 23:46
接口类,提供对数据库查询返回结果集的随机读写访问。
getType方法返回值
static final int FIELD_TYPE_NULL = 0;//如果指定的列是null,返回该值 static final int FIELD_TYPE_INTEGER = 1;//如果指定的列的属性是integer类型,返回该值 static final int FIELD_TYPE_FLOAT = 2;//如果指定的列的属性是float类型,返回该值 static final int FIELD_TYPE_STRING = 3;//如果指定的列的属性是String类型,返回该值 static final int FIELD_TYPE_BLOB = 4;//如果指定的列的属性是blob类型,返回该值
int getCount();//返回结果集中的行数,即结果数量
返回当前游标在结果集中的位置,默认值是0,游标默认停在-1的位置,当调用next()方法的时候,游标向下一行移动,最后一行的位置是count()
int getPosition();
光标相对当前位置向前或向后移动。offset正值向前移动,offset负值向后移动,移动的行数就是offset的绝对值。如果最后的位置超出了范围,将会固定在-1的位置或者count()的位置,如果向前移动超出范围,固定停在-1的位置,就是第一行的前面,如果向后移动超出范围,停在count()位置。如果最后停在这两个位置上,该方法就会返回false,其余返回true。
boolean move(int offset);
boolean moveToPosition(int position);
boolean moveToFirst();
boolean moveToLast();
boolean moveToLast();
移动光标至上一行。如果移动之后光标超出结果集的第一行,返回false。
boolean moveToPrevious();
boolean isFirst();
返回当前光标是否固定在结果集的最后一行。
boolean isLast();
boolean isBeforeFirst();
返回当前光标是否停在结果集最后一行的后面。
boolean isAfterLast();
int getColumnIndex(String columnName);
返回指定列名在结果集中的索引,从0开始,如果列明不存在,抛出异常信息
int getColumnIndexOrThrow(String columnName) throws IllegalArgumentException;
通过指定索引值返回对应的列名。索引值从0开始
String getColumnName(int columnIndex);
得到结果集中所有列名的String数组。
String[] getColumnNames();
返回结果集中的列数
int getColumnCount();
byte[] getBlob(int columnIndex);
返回结果集中指定索引值的列值,以String类型存储结果。
String getString(int columnIndex);
将结果集中指定索引的列的值存入buffer中,如果结果是空,直接返回buffer。索引值从0开始
void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer);
返回结果集中指定索引值的列的值,以short形式返回,调用此方法。注意short类型取值范围是-32768~32767。如果对应的列的值是空或者索引值的类型不是int或者获得的值超出short范围,将抛出异常。
short getShort(int columnIndex);
以int形式返回搜索的列的值。注意int值范围
int getInt(int columnIndex);
long getLong(int columnIndex);
以float形式范围检索的列的值,注意float值范围。
float getFloat(int columnIndex);
以double类型范围检索的列的值,注意double取值范围
double getDouble(int columnIndex);
返回检索的列的数据类型。
int getType(int columnIndex);
判断指定列的值是否为空
boolean isNull(int columnIndex);
关闭光标,释放资源的引用。
void close();
判断光标是否关闭
boolean isClosed();
void registerDataSetObserver(DataSetObserver observer);
总结:
严格意义上来说,sqlite没有数据类型,sqlite是使用动态数据类型, 数据的类型取决于数据本身而不是字段。
sqlite常用的数据类型:
NULL: 这个值为空值
VARCHAR(n):长度不固定且其最大长度为 n 的字串,n不能超过 4000。
CHAR(n):长度固定为n的字串,n不能超过 254。
INTEGER: 值被标识为整数
REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.
TEXT: 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).
BLOB: 值是BLOB数据块,以输入的数据格式进行存储。如何输入就如何存储,不改 变格式。
DATA :包含了 年份、月份、日期。
TIME: 包含了 小时、分钟、秒。
0 0
- Cursor源码梳理
- Android源码之Cursor
- Android Cursor 源码分析
- Android Cursor 源码分析
- 法律事务项目源码梳理
- Dubbo源码梳理
- Android 源码梳理
- ButterKnife源码梳理
- Ambari Agent源码梳理
- Mongodb源码分析--游标Cursor
- Mongodb源码分析--游标Cursor
- Mongodb源码分析--游标Cursor
- Android Cursor源码笔记(1)
- Android Cursor源码笔记(2)
- SQLiteOpenHelper/SQLiteDatabase/Cursor源码解析
- Mongodb源码分析--游标Cursor
- SQLiteOpenHelper/SQLiteDatabase/Cursor源码解析
- Zxing的源码结构梳理
- 多线程二
- JavaScript 控制(改变)canvas(画布)的大小
- 162.Set Matrix Zeroes-矩阵归零(中等题)
- SwipeRefreshLayout添加listview下拉冲突问题
- iOS逆向工程
- Cursor源码梳理
- Linux设置静态IP
- 如何安装 sass
- Intel Code Challenge Elimination Round (Div.1 + Div.2, combined)E. Research Rover (容斥Lucas)
- Timer和TimerTask详解
- 解决spark-shell执行官方sparkstreaming 报 only one sparkcontext maybe running in this jvm的错误
- I/O复用之epoll简介
- CircleView轻量级显示圆形,支持更多属性
- 【转载】互联网高级测试工程师至少具备的能力