Android 中的升級資料庫最佳方法實踐
package com.activitytest.databasetest;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyDatabaseHelper extends SQLiteOpenHelper {
//把建立資料庫表語句等同於字串變數的值,宣告為static使得其隨著類的載入而存在,隨著類的消失而消失,
//在類第一次被使用時裝載 ,只分配一塊儲存空間,所有此類的物件都可以操控此塊不變的儲存空間
public final static String CREATE_BOOK = "create table Book("+
"id integer primary key autoincrement,"+
"author text,"+
"price real,"+
"pages integer,"+
"name text" +
"category_id integer)";
public final static String CREATE_CATEGORY = "create table Category("
+"id integer primary key autoincrement,"
+"category_name text,"
+"category_code integer)";
private Context context;
//第二個引數為資料庫名字(.db),第三個引數一般傳入null,第四個引數是當前資料庫的版本號
public MyDatabaseHelper(Context mcontext, String name, SQLiteDatabase.CursorFactory cursorFactory, int version){
super(mcontext,name,cursorFactory,version);
context = mcontext;
}
//當呼叫SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法獲取用於運算元據庫的SQLiteDatabase例項的時候,
// 如果資料庫不存在,Android系統會自動生成一個資料庫,接著呼叫onCreate()方法,onCreate()方法在初次生成資料庫時才會被呼叫,
// 在onCreate()方法裡可以生成資料庫表結構及新增一些應用使用到的初始化資料。
@Override
public void onCreate(SQLiteDatabase db) {
//如果是第一次安裝(或者刪除之後安裝)
db.execSQL(CREATE_BOOK);
db.execSQL(CREATE_CATEGORY);
}
//onUpgrade()方法在資料庫的版本發生變化時會被呼叫,一般在軟體升級時才需改變版本號.
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch(oldVersion){
case 1://如果是1-->3,就會執行以下兩個case語句,這就是不加break的好處
db.execSQL(CREATE_CATEGORY);
case 2: //如果是2-->3
db.execSQL("alter table Book add column category_id integer");
default:
}
}
}
相關文章
- 企業級雲資料庫最佳實踐資料庫
- 最佳實踐:騰訊HTAP資料庫TBase助力某省核心IT架構升級資料庫架構
- android資料庫如何進行版本升級?架構之資料庫框架升級Android資料庫架構框架
- 最佳實踐 | 原始碼升級gcc原始碼GC
- PHP最佳實踐之資料庫PHP資料庫
- 微服務的【資料庫管理】最佳實踐微服務資料庫
- 阿里雲Polardb國產資料庫補丁升級 實踐阿里資料庫
- MSSQL·最佳實踐·例項級別資料庫上雲RDSSQLServerSQL資料庫Server
- 資料庫設計中的6個最佳實踐步驟資料庫
- AWS RDS強制升級的應對之道——版本升級的最佳實踐
- Android 資料庫綜述(一) 資料庫片的升級與資料的遷移操作Android資料庫
- 資料庫安全最佳實踐:基本指南資料庫
- 資料庫設計的十個最佳實踐資料庫
- Oracle資料庫升級或資料遷移的方法探討Oracle資料庫
- 分散式資料庫企業級功能技術解密與最佳實踐分散式資料庫解密
- Android開發中API層的最佳實踐AndroidAPI
- 資料庫升級之-Dataguard滾動升級資料庫
- Android 中關於增刪改查資料庫表實踐Android資料庫
- TiDB 異構資料庫複製最佳實踐TiDB資料庫
- 資料庫伺服器運維最佳實踐資料庫伺服器運維
- 資料庫升級之-資料泵資料庫
- Android MVP 最佳實踐AndroidMVP
- Android SharedPreferences最佳實踐Android
- Android Emoji 最佳實踐Android
- cassandra百億級資料庫遷移實踐資料庫
- 資料庫升級之-XTTS資料庫TTS
- 資料庫升級和工具資料庫
- 在Rainbond中實現資料庫結構自動化升級AI資料庫
- 【BEST】Oracle 資料庫19c配置最佳實踐Oracle資料庫
- 雲時代的資料庫客戶端 —— CloudQuery最佳實踐資料庫客戶端Cloud
- 靜默方式安裝、升級oracle(三): 升級資料庫軟體及資料庫Oracle資料庫
- KES資料庫實踐指南:探索KES資料庫的事務隔離級別資料庫
- Android 元件化最佳實踐Android元件化
- 編寫 Android Library 的最佳實踐Android
- 京東零售資料資產能力升級與實踐
- Android 原生 SQLite 資料庫的一次封裝實踐AndroidSQLite資料庫封裝
- 防拖庫的最佳實踐
- Android Architecture Component 和架構升級在銘師堂的實踐Android架構