A helper class to manage database creation and version management.
数据库的创建和版本管理的助手。
SQLiteOpenHelper 是一个抽象类,abstract class.
拥有成员变量,mName(数据库名称),mNewVersion(数据库版本),mDatabase(数据库)等.
构造函数需要传递,context,数据库名称,数据库版本等信息.
SQLiteOpenHelper(Context context, String name, CursorFactory factory,int version)
实现了以下函数:
getDatabaseName
getWritableDatabase
getReadableDatabase
onDowngrade
close
subclass需要实现以下函数:
public abstract void onCreate(SQLiteDatabase db);
public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion);
面试题1
使用SQLiteOpenHelper的getReadableDatabase()获得的数据库能不能,做写的操作
能
面试题2
写一个子类继承SQLiteOpenHelper,并实现以下功能
1).创建一个版本为1的“diaryOpenHelper.db”的数据库,
2).同时创建一个 “diary” 表(包含一个_id主键并自增长,topic字符型100长度, content字符型1000长度)
3).在数据库版本变化时请删除diary表,并重新创建出diary表
publicclass DBHelper extends SQLiteOpenHelper{
public final static String DATABASENAME ="diaryOpenHelper.db";
public final static int DATABASEVERSION =1;//创建数据库
public DBHelper(Context context,Stringname,CursorFactory factory,int version)
{
super(context, name, factory,version);
}//创建表等机构性文件
public void onCreate(SQLiteDatabase db)
{
String sql ="create table diary"+"("+"_id integer primary key autoincrement,"+"topic varchar(100),"+"content varchar(1000)"+")";
db.execSQL(sql);
}//若数据库版本有更新,则调用此方法
public void onUpgrade(SQLiteDatabasedb,int oldVersion,int newVersion)
{
String sql = "drop table if exists diary";
db.execSQL(sql);
this.onCreate(db);
}
}
网友评论