学习-SQLite数据库认识

2016-03-11 / 5 阅读 / Android

Android的SQLiteDatabase本质上是一个数据库文件,对数据库的操作就是对文件的处理。
如下SQLiteDatabase类的静态方法:

//打开path文件所代表的SQLite数据库
openDatabase(String path, SQLLiteDatabase.CursorFactory factory, int flags)
//打开或创建file文件所代表的SQLite数据库
openOrCreateDatabase(File file, SQlLiteDatabase.CursorFactory factory)
//打开或创建path文件所代表的SQLite数据库
openOrCreateDatabase(String path, SQlLiteDatabase.CursorFactory factory)

以上方法都会返回一个SQLiteDatabase对象,之后就可以条用SQLiteDatabase的方法操作数据库了。
如下几个:

//执行带占位符的SQL
execSQL(String sql, Object[] bindArgs);
//执行SQL
execSQL(String sql);
//插入
insert(String table, String nullColumnHack, ContentValues values);
//更新
update(String table, ContentValues values, String whereClause, String[] where Args);
//删除
delete(String table, Strin whereClause, String[] whereArgs);
//查询并排序
query (String table, String[] columns, String whereClause, String[] whereArgs, String groupBy, String having, String orderBy)
//查询并排序,控制最多几条记录
query (String table, String[] columns, String whereClause, String[] whereArgs, String groupBy, String having, String orderBy, String limit)
//查询 distinct表示是否去除重复值
query (boolean distinct,String table, String[] columns, String whereClause, String[] whereArgs, String groupBy, String having, String orderBy, String limit)
//执行带占位符的SQL查询
rawQuery(String sql, String[] sekectionArgs);
//开始事务
beginTransaction();
//结束事务
endTransaction();

另外查询语句会返回一个Cursor,类似JDBC中返回的ResultSet对象。
它有以下一些方法

//移到指定行
move(int offset);
//移到第一行,成功返回true
boolean moveToFirst();
//移到最后一行,成功返回true
boolean moveToLast();
//移到下一行,成功返回true
boolean moveToNext();
//移到上一行,成功返回true
boolean moveToPrevious();
//移到指定一行,成功返回true
boolean moveToPosition(int position);
//关闭游标,释放资源
close();
//在缓冲区中检索请求的列的文本,将将其存储
copyStringToBuffer(int columnIndex, CharArrayBuffer buffer)
//返回所有列的总数
getColumnCount();
//返回指定列的名称,如果不存在返回-1
getColumnIndex(String columnName) ;
//从零开始返回指定列名称,如果不存在将抛出IllegalArgumentException 异常。
getColumnIndexOrThrow(String columnName);
//从给定的索引返回列名
getColumnName(int columnIndex);
//返回一个字符串数组的列名
getColumnNames();
//返回Cursor 中的行数
getCount();
返回指定列指定类型,前提是需要知道类型
getXxx(int columnIndex);
相关推荐