Android开发:SQLiteOpenHelper学习
SQLiteOpenHelper是一个辅助类,用来管理数据库的创建和版本他,它提供两个方面的功能
第一,getReadableDatabase()、getWritableDatabase
()可以获得SQLiteDatabase对象,通过该对象可以对数据库进行操作
第二,提供了onCreate()、onUpgrade()两个回调函数,允许我们再创建和升级数据库时,进行自己的操作
这个类只用于创建,升级数据库和表,具体数据在包action里操作
- public class DatabaseHelper extends SQLiteOpenHelper {
- public static final String DB_DBNAME = "contact";
- public static final String DB_TABLENAME = "user";
- public static final int VERSION = 4;
- /**
- * 在SQLiteOpenHelper的子类当中,必须有该构造函数
- *
- * @param context
- * 上下文对象
- * @param name
- * 数据库名称
- * @param factory
- * @param version
- * 当前数据库的版本,值必须是整数并且是递增的状态 ,并且必须大于等于1
- */
- public DatabaseHelper(Context context, String name, CursorFactory factory,
- int version) {
- // 必须通过super调用父类当中的构造函数,从而创建数据库;但是这里并不创建数据库,当调用getReadableDatabase()、getWritableDatabase()宾才会创建数据库。
- super(context, name, factory, version);
- }
- public DatabaseHelper(Context context, String name) {
- super(context, name, null, 4);
- }
- /**
- * 该函数是在第一次创建的时候执行,实际上是第一次得到SQLiteDatabase对象的时候才会调用这个方法,可以在这里创建数据表;
- */
- @Override
- public void onCreate(SQLiteDatabase db) {
- System.out.println("create a table");
- StringBuffer sql = new StringBuffer("");
- sql.append("create table ").append(DB_TABLENAME).append(" (")
- .append("_id integer primary key autoincrement,")
- .append("name text,").append("mobilephone text,")
- .append("officephone text,").append("familyphone text,")
- .append("address text,").append("othercontact text,")
- .append("email text,").append("position text,")
- .append("company text,").append("zipcode text,")
- .append("remark text,").append("imageid int,")
- .append("privacy int ").append(")");
- System.out.println(sql.toString());
- db.execSQL(sql.toString());
- }
- /**
- * 升级数据库
- */
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- String sql = "drop table if exists " + DB_TABLENAME;
- db.execSQL(sql);
- onCreate(db);
- }
- }
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20