Android SQLite的使用

在android中,大量的数据存放在本地中,所以管理本地数据用轻量级数据库SQLite非常适合.

第一步:

在使用数据之前,Android推荐我们使用Contact来管理和使用数据库.

具体使用方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public final class PetContract {
private PetContract() {}
public static final class PetEntry implements BaseColumns {
public final static String TABLE_NAME = "pets";
public final static String _ID = BaseColumns._ID;
public final static String COLUMN_PET_NAME ="name";
public final static String COLUMN_PET_BREED = "breed";
public final static String COLUMN_PET_GENDER = "gender";
public final static String COLUMN_PET_WEIGHT = "weight";
public static final int GENDER_UNKNOWN = 0;
public static final int GENDER_MALE = 1;
public static final int GENDER_FEMALE = 2;
}
}

使用常量来配置各个表名等,为后面使用做铺垫

第二步:

编写自己的 SQLiteOpenHelper类

创建4个常量

1
2
3
4
DATABASE_NAME
DATABASE_VERSION
DATABASE_CREATE
DATABASE_DELETE

分别是 数据库名称.数据库版本.数据库创建语句.和数据库删除语句

重写2个方法 : onCreate onUpgrade(删除并重建数据库)

重点(在生成4个常量时要用到之前用的Contract常量,以后更新数据会很方便)

第三步:

创建数据库对象

1
2
3
PetDbHelper mPetDbHelper;
SQLiteDatabase db=mPetDbHelper.getReadableDatabase();
SQLiteDatabase db=mPetDbHelper.getWritableDatabase();

并且可以得到读写数据库的2个对象

增删查改示例:

1
2
3
4
5
6
7
Long id=db.insert(PetsContract.PetsEntry.TABLE_NAME,null,values);
database.delete(PetsContract.PetsEntry.TABLE_NAME,selection,selectionArgs)
// 参数2位选择语句 比如 id=? 参数3为id的值(参数一个时)
Cursor cursor=db.query(
PetsContract.PetsEntry.TABLE_NAME,strings,selection,selectionArgs,null,null,null);
//第二个参数为所选择的的列
db.update(PetsContract.PetsEntry.TABLE_NAME,values,selection,selectionArgs)

集体参数可以查看 Google官方 对 PetDbHelper 的介绍.