SQLiteOpenHelper

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);

}

}

你可能感兴趣的:(SQLiteOpenHelper)