创建数据库

    private static class DatabaseHelper extends SQLiteOpenHelper 
    {
        /**
         * @param context 上下文
         * @param name 数据库名称
         * @param factory CursorFactory实例
         * @param version 数据库版本号
         */
        public DatabaseHelper(Context context, String name, CursorFactory factory, int version)
        {
            super(context, name, factory, version);
            Log.i(MLog.tag, "++DatabaseHelper++");
        }

        @Override
        public void onCreate(SQLiteDatabase db)
        {
            Log.i(MLog.tag, "++DatabaseHelper.onCreate.begin++");
            db.execSQL(SQL_CREATE_READER);
            db.execSQL(SQL_CREATE_READ_PERIOD);
            db.execSQL(SQL_CREATE_READ_BOOK);
            db.execSQL(SQL_CREATE_READ);
            Log.i(MLog.tag, "++DatabaseHelper.onCreate.end++");
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
        {
            Log.i(MLog.tag, "++DatabaseHelper.onUpgrade.begin++");
            db.execSQL("DROP TABLE IF EXISTS " + ReaderColumns.TB_NAME);
            db.execSQL("DROP TABLE IF EXISTS " + ReadPeriodColumns.TB_NAME);
            db.execSQL("DROP TABLE IF EXISTS " + ReadBookColumns.TB_NAME);
            db.execSQL("DROP TABLE IF EXISTS " + ReadColumns.TB_NAME);
            onCreate(db);
            Log.i(MLog.tag, "++DatabaseHelper.onUpgrade.end++");
        }
    }

SQLiteOpenHelper构造方法

创建helper对象,用于创建、打开、管理数据库;想要创建、打开数据库,必须调用方法getWritableDatabas(或getReadableDatabas)

参数列表:

- context 用于打开、创建数据库
- name 数据库文件的名称;null表示数据库存在于内存
- factory 用于创建cursor对象;默认null
- version 数据库版本号;如果这个数据库是旧的,调用onUpgrade、升级数据库;如果这个数据库是新的,调用onDowngrade、降级数据库

SQLiteOpenHelper.onCreate方法

在数据库第1次被创建时调用;这个方法应该完成数据库表的创建和初始化操作

参数列表:

- db 数据库对象

    public static final String DB_NAME = "GasRead.db";        
    public static final int DB_VERSION = 1;
    
    private Context mContext;
    private DatabaseHelper dbHelper;
    private SQLiteDatabase db;

    public DBGasRead(Context context)
    {
        this.mContext = context;
        dbHelper = new DatabaseHelper(mContext, DB_NAME, null, DB_VERSION);
        db = dbHelper.getWritableDatabase();
    }
    
    public void destroy()
    {
        Log.i(MLog.tag, "++DBGasRead.destroy.begin++");
        // Close the database.
        if(db != null)
        {
            db.close();
        }
        // Close any open database object.
        if(dbHelper != null)
        {
            dbHelper.close();
        }
        Log.i(MLog.tag, "++DBGasRead.destroy.end++");
    }
原文地址:https://www.cnblogs.com/fengzhblog/p/2768356.html