package com.cundong.izhihu.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public final class DatabaseHelper extends SQLiteOpenHelper { //db public static final String DB_NAME = "news_paper.db"; public static final int DB_VERSION = 7; //1.news_list //store news list and news detail public static final String NEWS_TABLE_NAME = "news_list"; public static final String NEWS_COLUMN_ID = "_id"; public static final String NEWS_COLUMN_TYPE = "type"; public static final String NEWS_COLUMN_KEY = "key"; public static final String NEWS_COLUMN_CONTENT = "content"; private static final String NEWS_TABLE_CREATE = "CREATE TABLE " + NEWS_TABLE_NAME + "(" + NEWS_COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + NEWS_COLUMN_TYPE + " INTEGER NOT NULL, " + NEWS_COLUMN_KEY + " CHAR(256) UNIQUE NOT NULL, " + NEWS_COLUMN_CONTENT + " TEXT NOT NULL);"; //2.news_read public static final String READ_TABLE_NAME = "news_read"; public static final String READ_COLUMN_ID = "_id"; public static final String READ_COLUMN_NEWSID = "news_id"; private static final String READ_TABLE_CREATE = "CREATE TABLE " + READ_TABLE_NAME + "(" + READ_COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + READ_COLUMN_NEWSID + " CHAR(256) UNIQUE);"; //3.news_favorite public static final String FAVORITE_TABLE_NAME = "news_favorite"; public static final String FAVORITE_COLUMN_ID = "_id"; public static final String FAVORITE_COLUMN_NEWS_ID = "news_id"; public static final String FAVORITE_COLUMN_NEWS_TITLE = "news_title"; public static final String FAVORITE_COLUMN_NEWS_LOGO = "news_logo"; public static final String FAVORITE_COLUMN_NEWS_SHARE_URL = "news_share_url"; private static final String FAVORITE_TABLE_CREATE = "CREATE TABLE " + FAVORITE_TABLE_NAME + "(" + FAVORITE_COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + FAVORITE_COLUMN_NEWS_ID + " CHAR(256) UNIQUE, " + FAVORITE_COLUMN_NEWS_TITLE + " CHAR(1024), " + FAVORITE_COLUMN_NEWS_LOGO + " CHAR(1024), " + FAVORITE_COLUMN_NEWS_SHARE_URL + " CHAR(1024));"; private volatile static DatabaseHelper mDBHelper; private DatabaseHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } public static synchronized DatabaseHelper getInstance(Context context) { if (mDBHelper == null) { synchronized (DatabaseHelper.class) { if (mDBHelper == null) { mDBHelper = new DatabaseHelper(context); } } } return mDBHelper; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(NEWS_TABLE_CREATE); db.execSQL(READ_TABLE_CREATE); db.execSQL(FAVORITE_TABLE_CREATE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + NEWS_TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + READ_TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + FAVORITE_TABLE_NAME); onCreate(db); } }