SQLite数据库第一天

一、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(),factory,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 integer
primary 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

你可能感兴趣的:(Android)