package com.dotcool.dal; /** * 创建数据库,并创建表 * author Lee * date 2012/4/18 */ import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class BookOpenHelper extends SQLiteOpenHelper { private final static String DB_NAME = "ebook.db"; //创建数据库 public BookOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, DB_NAME, factory, version); } //类创建时调用,在这里主要创建table @Override public void onCreate(SQLiteDatabase db) { String createBookInfoSql = "CREATE TABLE [book_info] ("+ "[book_id] INTEGER PRIMARY KEY AUTOINCREMENT,"+ "[book_name] VARCHAR,"+ "[book_author] VARCHAR, "+ "[book_path] VARCHAR, "+ "[book_add_time] VARCHAR,"+ "[book_open_time] VARCHAR, "+ "[book_category_id] INTEGER CONSTRAINT [book_category_fk] REFERENCES [book_category]([book_category_id]),"+ "[book_category_name] VARCHAR,"+ "[book_size] VARCHAR, "+ "[book_progress] VARCHAR,"+ "[book_begin_position] INTEGER NOT NULL DEFAULT (0));"; String createBookCategorySql = "CREATE TABLE [book_category] ("+ "[book_category_id] INTEGER PRIMARY KEY AUTOINCREMENT,"+ "[book_category_name] VARCHAR, "+ "[book_id] VARCHAR, "+ "[book_name] VARCHAR);"; String createBookMarkSql = "CREATE TABLE [book_mark] ("+ "[book_mark_id] INTEGER PRIMARY KEY AUTOINCREMENT,"+ "[book_id] INTEGER CONSTRAINT [book_mark_fk] REFERENCES [book_info]([book_id]),"+ "[book_name] VARCHAR, "+ "[book_path] VARCHAR, "+ "[book_mark_add_time] VARCHAR, "+ "[book_mark_progress] VARCHAR,"+ "[book_mark_detail] VARCHAR," + "[book_mark_begin_position] INTEGER);"; String createBookReadSettingSql = "CREATE TABLE [book_read_setting] ("+ "[book_id] INTEGER, "+ "[book_fontsize] INTEGER(2) NOT NULL,"+ "[book_bg_style] VARCHAR, "+ "[book_font_r] INTEGER(3) NOT NULL DEFAULT (0),"+ "[book_font_g] INTEGER(3) NOT NULL DEFAULT (0), "+ "[book_font_b] INTEGER(3) NOT NULL DEFAULT (0), "+ "[book_bg_r] INTEGER(3) NOT NULL DEFAULT (0), "+ "[book_bg_g] INTEGER(3) NOT NULL DEFAULT (0), "+ "[book_bg_b] INTEGER(3) NOT NULL DEFAULT (0), "+ "[book_margin_width] INTEGER(2) NOT NULL, "+ "[book_margin_height] INTEGER(2) NOT NULL);"; String createBookChapterSql = "CREATE TABLE [book_chapter] ("+ "[book_id] INTEGER PRIMARY KEY, "+ "[book_name] VARCHAR, "+ "[book_chapter_name] VARCHAR,"+ "[book_chapter_begin_psition] INTEGER);"; db.execSQL(createBookInfoSql); db.execSQL(createBookCategorySql); db.execSQL(createBookMarkSql); db.execSQL(createBookReadSettingSql); db.execSQL(createBookChapterSql); } //版本升级时调用 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String dropBookInfoSql = "drop table if exists book_info"; String dropBookCategorySql = "drop table if exists book_category"; String dropBookMarkSql = "drop table if exists book_mark"; String dropBookSettingSql = "drop table if exists book_read_setting"; String dropBookChapterSql = "drop table if exists book_chapter"; db.execSQL(dropBookInfoSql); db.execSQL(dropBookCategorySql); db.execSQL(dropBookMarkSql); db.execSQL(dropBookSettingSql); db.execSQL(dropBookChapterSql); onCreate(db); } }