Android访问SQlite实现基本CRUD操作

      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。


 

你可能感兴趣的:(Android移动开发)