Android访问SQlite实现基本CRUD操作

来源:互联网 发布:家用洗牙器 知乎 编辑:程序博客网 时间:2024/06/07 06:55

      Android设备中配备了SQLite数据库。通过SQLiteOpenHelper来访问SQLite数据库。而执行SQL语句的操作是位于android.database.sqlite包中的SQLiteDatabase类,通过SQLiteOpenHelper中的 getWritableDatabase或getReadableDatabase方法,可以获取到不同权限的SQLiteDatabase。

SQLiteOpenHelper主要用于操作数据库和升级升级数据库。其中,onCreate和onUpgrade是该类的两个主要方法,负责数据库的创建和升级。这两个方法的调用规则如下:

   1.如果数据库文件不存在,SQLiteOpenHelper在自动创建数据库后仅仅执行onCreate方法,该方法中,一般需要创建数据库中的表、视图等组件。因执行onCreate之前,数据库不存在,故不必执行删除(已存在组件)操作。

    2.如果数据库存在,且当前版本号高于上次创建或升级时的版本号,那么SQLiteOpenHelper会调用onUpgrade方法,该方法会更新数据库版本号。在该方法中,首先应该删除已创建的表、视图等组件,然后创建新的数据库表、视图等组件。故在执行onUpgrade之前,数据库表是存在的,而且已经存在相应的数据库组件。

创建自定义SQLiteOpenHelper类核心代码段如下所示。

  public class MsgRecordDBHelper extends SQLiteOpenHelper {       public MsgRecordDBHelper(Context context, String name,  CursorFactory factory, int version) {    super(context, name, factory, version);  }      @Override    public void onCreate(SQLiteDatabase sdb) {          String sqlCreate; //创建数据库表的SQL语句          sdb.execSQL(sqlCreate);    }      @Override    public void onUpgrade(SQLiteDatabase sdb, int oldVersion,           int newVersion) {     //执行更新数据库版本号、数据库表的操作。    }  }

随后,在数据库接口(DAO)层中,通过SQLiteOpenHelper 类的子类来获取SQLiteDatabase,这样,就可以执行SQL语句,实现了对SQLite数据库的CRUD基本操作。

  MsgRecordDBHelper dbHelper= new MsgRecordDBHelper(_context);  SQLiteDatabase db = dbHelper.getWritableDatabase();


 

SQLiteDatabase 类提供了一系列对数据库的基本操作的API,详细内容见android.database.sqlite.SQLiteDatabase。