一、sqlite操作的组件类
Android SDK提供了一些类来表示sqlite的行,操作返回值等。
ContentValues类用于表示数据库的行,一个ContentValues对象代表了数据库的一行数据,
其中包含了各列的数据值,在想sqlite数据库插入数据的时候,ContentValues对象提供了列明和数据
的映射关系。
Cursor类用于操作数据库查询结果,包含的典型的方法如下:
moveToFirst,移动指针至结果的第一行;
moveToNext,移动指针到下一行
moveToPrevIoUs,移动指针到上一行
getCount,获取结果的行数
getColumnIndexOrThrow,返回指定名称的列的索引,如列不存在则抛出异常
getColumnName,获取指定索引的列的名称
getColumnNames,获取所有列明
moveToPosition,移动指针到指定的行
getPosition,获取单签指针位置
另外,Android提供了Activity中管理Cursor资源的机制。应用程序的Activity提供了startManagingCursor方法
以将Cursor的生命周期集成到Activity的生命周期中。当完成Cursor的使用后,可以通过调用Activity提供的
stopManagingCursor来解除继承关系
二、直接读写sqlite数据库
我们可以通过如下两步来使用数据库
1、调用android.database.sqliteDatabase类的openDatabase或openOrCreateDatabase方法来打开或者创建数据库:
static sqliteDatabase openDatabase(String path,sqliteDatabase.CursorFacrory,int flags);
//第三个参数flag可取的值有OPEN_READWRITE,OPEN_READONLY,
//CREATE_IF_NECESSARY等,以说明数据库打开操作的方式
static sqliteDatabase openOrCreateDatabase(String path,sqliteDatabase.CursorFactory);
//等同于openDatabase(path,factory,CREATE_IF_NESSARY)
static sqliteDatabase openOrCreateDatabase(File file,sqliteDatabase.CursorFactory factory);
//等同于openDatabase(file.getPath(),CREATE_IF_NECESSARY)
2、调用同一类的execsql方法来执行sql语句void execsql(String sql,Object[] bindArgs);void execsql(String sql);直接操作数据库方法的代码如下:private static final Stirng DATABASE_NAME="SampleDB.db";private static final String DATABASE_TABLE="staff";private static final String DATABASE_CREATE="create table"+DATABASE_TABLE+" (id integerprimary key autoincrement,"+"name teset not null);";private void createDatabase(){sqliteDatabase myDB=openOpCreate(DATABASE_NAME,Context.MODE_PRIVATE,null);myDB.execsql(DATABASE_CREATE);}对于非常简单的数据库访问程序,上面的方法比较简洁,大叔你好iduiyu数据库访问较多的应用程序,直接诶对数据库进行访问会使得代码模块的耦合性增大,应用程序逻辑控制层不能够独立于数据存储层,随着程序代码量的增大,维护的代价也会越来越大。因此建立一个数据库的Adapter是一个非常好的选择,Android SDK也提供了类以协助实现Adapter
原文链接:https://www.f2er.com/sqlite/202717.html