预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共45页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
SQLite和ContentProvider介绍
核心提示:1.第一步在Eclipse中,打开ex08_1_SQLite项目,具体步骤如下。新建一个项目。依次单击FileNewAndroidProject项。在新建项目的对话框中,选择Createprojectfromexistingsource项。单击浏览,找到ex08_1_SQLite项目,然后单击确定。程序的目录结构
1.第一步
在Eclipse中,打开ex08_1_SQLite项目,具体步骤如下。
·新建一个项目。依次单击File→New→AndroidProject项。
·在新建项目的对话框中,选择Createprojectfromexistingsource项。
·单击浏览,找到ex08_1_SQLite项目,然后单击确定。
程序的目录结构如图8-6所示。
2.第二步
单击运行项目,我们可以看到主界面如图8-7所示,这个界面的布局信息都在main.xml文件中,在一个LinearLayout当中数值排列了5个Button。
3.第三步
小知识什么是SQLiteDatabase?
一个SQLiteDatabase的实例代表了一个SQLite的数据库,通过SQLiteDatabase实例的一些方法,我们可以执行SQL语句,对数据库进行增、删、查、改的操作。需要注意的是,数据库对于一个应用来说是私有的,并且在一个应用当中,数据库的名字也是惟一的。
▲图8-6程序目录结构图▲图8-7主界面
小知识什么是SQLiteOpenHelper?
根据这名字,我们可以看出这个类是一个辅助类。这个类主要生成一个数据库,并对数据库的版本进行管理。当在程序当中调用这个类的方法getWritableDatabase()或者getReadableDatabase()方法的时候,如果当时没有数据,那么Android系统就会自动生成一个数据库。SQLiteOpenHelper是一个抽象类,我们通常需要继承它,并且实现里边的3个函数,具体函数如下所示。·onCreate(SQLiteDatabase):在数据库第一次生成的时候会调用这个方法,一般我们在这个方法里边生成数据库表。
·onUpgrade(SQLiteDatabase,int,int):当数据库需要升级的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据表,并建立新的数据表,当然是否还需要做其他的操作,完全取决于应用的需求。
·onOpen(SQLiteDatabase):这是当打开数据库时的回调函数,一般也不会用到。
我们在ActivityMain文件中看下边这个内部类。DatabaseHelper类继承SQLiteOpenHelper,具体代码如下所示:
privatestaticclassDatabaseHelperextendsSQLiteOpenHelper{
DatabaseHelper(Contextcontext){
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
publicvoidonCreate(SQLiteDatabasedb){
//SQL语句
Stringsql="CREATETABLE"+TABLE_NAME+"("+TITLE
+"textnotnull,"+BODY+"textnotnull"+");";
Log.i("haiyang:createDB=",sql);
//执行这条SQL语句
db.execSQL(sql);
}
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
}
}
代码解释:
·DatabaseHelper类继承了SQLiteOpenHelper类,并且重写了onCreate和onUpgrade方法。
·在onCreate()方法里边首先我们构造一条SQL语句,然后调用db.execSQL(sql)执行SQL语句。这条SQL语句为我们生成了一张数据库表。
·目前我们还不需要升级数据库,所以我们在onUpgrade()函数里边没有执行任何操作。
4.第四步
我们单击插入两条记录的按钮,如果数据成功插入到数据库当中的diary表中,那么在界面的title区域就会有成功的提示,如图8-8所示。
单击这个按钮后,程序执行了监听器里的onClick方法,并最终执行了上述程序里的insertItem方法,其具体代码如下所示:
privatevoidinsertItem(){
SQLiteDatabasedb=mOpenHelper.getWritableDatabase();
//首先生成