GreenDao3 0公升級資料庫

2021-07-25 09:54:27 字數 1144 閱讀 5326

看了好幾篇文章,最後還是自己搞明白的,唉,長話短說:

greendao
我們首先先建立乙個只有乙個成員變數name的student實體類來進行測試.

然後需要注意的是不能再使用daomaster裡的newdevsession(context,string)來得到daosession物件了,因為這樣做,我們的公升級過程會走devopenhelper中的onupgrade方法,大家可以看到devopenhelper方法上有一行警告:

warning: drops all table on upgrade! use only during development.

這個意思就是,這個方法只能在開發過程中使用,為什麼呢?

我們可以看devopenhelper的onupgrade方法得知,他的公升級做法是先dropalltables刪除所有的表,然後在oncreate資料庫,這樣的話,我們之前的資料全部都會被清除了.

所以我們要自定義studentdaohelper類(這個名字隨便起)繼承daomaster.openhelper,重寫onupgrade方法:

public class studentdaohelper extends daomaster.openhelper 

@override

public void onupgrade(sqlitedatabase db, int oldversion, int newversion)

}

然後我們在用資料庫時需要這樣來用:

studentdaohelper helper = new studentdaohelper(上下文);

daomaster daomaster = new daomaster(helper.getwritabledb());

daosession daosession = daomaster.newsession();

studentdao dao = daosession.getstudentdao();

需要公升級的時候

(1) 在gradle裡更新資料庫的版本號

(2)  更新實體類(比如我們這個是新增成員變數age)

(3) 最後在studentdaohelper中寫更新語句

(二)GreenDao3 0的資料庫公升級

public class migrationhelper 生成臨時表,儲存舊的表資料 param db param daoclasses private static void generatetemptables database db,class daoclasses 檢測table是否存在 p...

公升級資料庫

第一版只有book表 第二版加上category表 第三版為book表加上category id 列 book表 這是公升級後的原來沒有category id 列 public static final string create book create table book id integer ...

GreenDao 使用和資料庫公升級

1使用方法 一.新增依賴 在bulid.gradle檔案下的dependencies下新增所需依賴 compile org.greenrobot greendao 3.2.2 add library compile org.greenrobot greendao generator 3.2.2 二 ...