zoukankan      html  css  js  c++  java
  • 创建数据库

        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++");
        }
  • 相关阅读:
    VSCode C++ 主题
    Linux 软连接应用
    Python 调用 C 动态库
    Qt 打包程序
    Qt 样式修改
    libusb 批传输的使用方法
    Qt 数据库操作
    Qt 调用第三方库
    CS 调用 C 动态库
    Qt 串口操作
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/2768356.html
Copyright © 2011-2022 走看看