本文将详细说明mymemo 1.0的数据库操作部分。
从《便签软件开发笔记——概述》一本知道,mymemo 1.0需要两张数据库表,一张表存储日期,该日期创建的总便签数以及完成便签数。这张表我称之为“datelist”;一张表存储便签内容,包括内容、进度,以及该便签所从属的日期的ID,称之为“memolist”。创建这两张表的sql如下:
create table datelist (_id integer primary key autoincrement, mmdate text not null, mmtotal integer not null, mmcomp integer not null);
create table memolist (_id integer primary key autoincrement, mmcontent text not null, mmdateid integer not null, mmprocess integer not null);
在创建数据库操作类之前,需要说明一下一个辅助类,定义代码如下:
根据google android的开发手册,SQLiteOpenHelper类的说明如下:
用于数据库创建和版本管理的一个辅助类。开发人员创建该类的子类时需要实现onCreate(SQLiteDatabase)、onUpgrade(SQLiteDatabase, int,int)两个方法,onOpen(SQLiteDatabase)方法的实现是可选的。当我们使用这个类获取数据库实例的时候,如果数据库存在那么就会打开它,如果不存在则会创建它。也可以使用事务。onUpgrade(SQLiteDatabase, int, int)方法用于升级数据库,我们可以在这个方法中添加表,删除表,或者更改表,或者其他升级所需要做的事。
说明这个辅助类之后,接着说我所定义的数据库操作类MemoDbHelper。定义如下:
需要注意的是,创建表的sql必须以“;”结束,否则创建不成功;另外,如果你在编程的过程中更改了列名,最好数据库表也换成新的,否则也会出现错误。
感觉这些是很基础的东西,没什么需要再说的,呵呵:)