Android之GreenDao3.0使用

原文鏈接:https://www.jianshu.com/p/c66edf56d904

首先附上項目地址:https://github.com/greenrobot/greenDAO
API文檔:http://greenrobot.org/files/greendao/javadoc/current/

第一步:瞭解註解。

註解API:
@Entity 參數:

schema:告知GreenDao當前實體屬於哪個schema
active:標記一個實體處於活躍狀態,活動實體有更新、刪除和刷新方法
nameInDb:在數據庫中使用的別名,默認使用的是實體的類名
indexes:定義索引,可以跨越多個列
createInDb:標記創建數據庫表

基礎屬性註解

@Id:主鍵 Long 型,[可以通過@Id](mailto:%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87@id)(autoincrement = true)設置自增長
@Property:設置一個非默認關係映射所對應的列名,默認是使用字段名,例如:@Property(nameInDb = "name")
@NotNull:設置數據庫表當前列不能爲空
@Transient:添加此標記後不會生成數據庫表的列

索引註解

@Index:[使用@Index作爲一個屬性來創建一個索引](mailto:%E4%BD%BF%E7%94%A8@index%E4%BD%9C%E4%B8%BA%E4%B8%80%E4%B8%AA%E5%B1%9E%E6%80%A7%E6%9D%A5%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%B4%A2%E5%BC%95),通過name設置索引別名,也可以通過unique給索引添加約束
@Unique:向數據庫添加了一個唯一的約束

關係註解

@ToOne:定義與另一個實體(一個實體對象)的關係
@ToMany:定義與多個實體對象的關係

第二步:編譯項目生成所需文件

編寫完數據庫實體類之後,編譯一下項目,會在build目錄下生成三個文件DaoMaster,DaoSession,XXXDao。

 

編譯項目

第三步:初始化GreenDao

一般是在Application裏初始化,

        DevOpenHelper helper = new DevOpenHelper(this, "DateBaseName");
        Database db = helper.getWritableDb();
        daoSession = new DaoMaster(db).newSession();

注意:DevOpenHelper有兩個重載方法:DevOpenHelper(Context context,String name) 和DevOpenHelper(Context context,String name,CursorFactory factory)。context上下文這個不用多說,name數據庫的名字,cursorFactory遊標工廠,一般不用,傳入null或者使用兩個參數的方法即可。
爲了開發方便,我們會對外提供一個getDaoSession()的方法供外部使用。

public DaoSession getDaoSession() {
        return daoSession;
    }

在activity中使用:

        DaoSession daoSession = ((App) getApplication()).getDaoSession();
        DateBaseNameDao = daoSession.getDateBaseNameDao();

剩下的就是拿着Dao實例進行增刪改查的操作。



作者:吃飽了就送
鏈接:https://www.jianshu.com/p/c66edf56d904
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章