您的位置:首页 > 数据库 > SQL

SQLiteOpenHelper类

2015-10-30 20:33 531 查看
SQLiteOpenHelper是一个抽象类,用来管理数据库的创建和版本的管理。使用步骤:创建一个SQLiteOpenHelper的子类,必须实现onCreate()和onUpgrade()方法,还有一个可选的onOpen()方法。这个类会管理好打开已经存在的数据库,创建数据库,和更新数据库。这个类能确保数据库的准确性。常用方法说明:①publicvoidonCreate(SQLiteDatabasedb):好打当第一次运行时调用此方法,如果数据库已存在则不调用,不存在则调用此方法,一般写一些创建数据库的语句。②publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion):当数据库版本升级后会调用此方法,一般会先备份数据,再创建表,再设置新表的数据③publicvoidonDowngrade(SQLiteDatabasedb,intoldVersion,intnewVersion):当数据库版本降级后调用此方法④publicvoidonOpen(SQLiteDatabasedb):当打开数据库后会调用此方法注意:①getReadableDatabase():打开或得到一个数据库,首先以读写的方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。如果问题解决,则只读数据库对象将会关闭,然后返回一个可读写的数据库对象。不要再在getWritableDatabase方法之后调用②getWritableDatabase():打开或得到一个数据库,以读写方式打开数据库,一旦数据库的磁盘空间满了,使用数据库就只能读不能写,这个方法就会出错。这两个方法都会消耗很长时间,所以不能在UI线程中调用,也不能在ContentProvider.onCreate()中调用。构造方法:SQLiteOpenHelper(Contextcontext,Stringname,SQLiteDatabase.CursorFactoryfactory,intversion):创建一个helper类,来创建,打开,管理数据库。①name:数据库名称②version:数据库版本号简单的定义:
importandroid.content.Context;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
importandroid.util.Log;
publicclassPersonOpenHelperextendsSQLiteOpenHelper{
	privatestaticfinalStringDATABASE_NAME="person.db";
	privatestaticfinalintVERSION=1;
/**
	*数据库被创建。数据库名称就是DATABASE_NAME
	*/
	publicPersonOpenHelper(Contextcontext){
		super(context,DATABASE_NAME,null,VERSION);
		Log.i("PersonOpenHelper","---------");
}
/**
	*初始化数据库一般在里面建表
	*/
@Override
	publicvoidonCreate(SQLiteDatabasedb){
		Log.i("onCreate","---------");
}
/**
	*数据库版本升高
	*/
@Override
	publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
		Log.i("onUpgrade","---------");
}
@Override
	publicvoidonDowngrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
		super.onDowngrade(db,oldVersion,newVersion);
		Log.i("onUpgonDowngraderade","---------");
}
@Override
	publicvoidonOpen(SQLiteDatabasedb){
super.onOpen(db);
}
}
调用代码:
userHelper=newUserHelper(context);
db=userHelper.getWritableDatabase();

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: