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。
- Android访问SQlite实现基本CRUD操作
- 学习笔记:Android SQLite,并实现SQLite基本CRUD操作的Demo
- 学习笔记:Android SQLite,并实现SQLite基本CRUD操作的Demo
- Android Sqlite+反射 实现CRUD
- Android中SQLite的简单crud操作
- android数据库sqlite的CRUD操作
- android sqlite数据库封装 实现crud
- android---sqlite基本操作
- Android SQLite基本操作
- android SQLite基本操作
- Android: Sqlite基本操作
- Android中实现SQLite数据库CRUD操作的两种方式
- JAVA实现DAO层基本CRUD操作
- mybatis入门-实现基本CRUD操作
- JAVA实现DAO层基本CRUD操作
- android SQLite的CRUD
- Android-SQLite的CRUD
- android小功能实现之SQLite数据库的基本操作
- duplicate symbol _protobuf_c_buffer_simple_append in ...错误解决
- linux常用命令
- Unity Mathf 数学运算(C#)
- Photoshop换头术
- ognl.NoSuchPropertyException(没有对应属性异常)
- Android访问SQlite实现基本CRUD操作
- gentoo快速安装
- 经济学的能与不能
- Java 线程同步
- YY一下微信线下支付的场景
- Cocos2d-x中让CCSprite变灰(Gray)的简单办法
- 土改或令中国一大群人迎来新一夜暴富机会
- 如何在Ubuntu中安装中文输入法fcitx或ibus
- sendto、WSASendto,recvfrom、WSARecvfrom 区别?