##greendao ##1.greendao是什麼 java
##2.性能 數據庫
不只如此,其優勢還包括有如下幾點 存取速度快 支持數據庫加密 輕量級 激活實體 支持緩存 代碼自動生成
##3.使用 ###配置 1.在Project工程build.gradle里加入以下配置緩存
classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0' allprojects { repositories { jcenter() } } 2.在Module裏build.gradle里加入以下配置 apply plugin: 'org.greenrobot.greendao' compile 'org.greenrobot:greendao:3.1.0' greendao { schemaVersion 1 }
###建立User對象app
@Entity:告訴GreenDao該對象爲實體,只有被@Entity註釋的Bean類才能被dao類操做 @Id:對象的Id,使用Long類型做爲EntityId,不然會報錯。(autoincrement = true)表示主鍵會自增,若是false就會使用舊值 @Property:能夠自定義字段名,注意外鍵不能使用該屬性 @NotNull:屬性不能爲空 @Transient:使用該註釋的屬性不會被存入數據庫的字段中 @Unique:該屬性值必須在數據庫中是惟一值
###編譯項目 1 . 生成DaoMaster.java GreenDao的頂級對象,做爲數據庫對象、用於建立表和刪除表 DevOpenHelper:建立SQLite數據庫的SQLiteOpenHelper的具體實現 2 . 生成DaoSession.java 管理全部的Dao對象,Dao對象中存在着增刪改查等API 3 . 生成UserDao.java 實體類生成了get和set方法 ###調用方法 User mUser; List<User> mList; 1. 增 增長單個數據 getUserDao().insert(mUser); getUserDao().insertOrReplace(mUser);性能
增長多個數據 getUserDao().insertInTx(mList); getUserDao().insertOrReplaceInTx(mList); 2. 刪 刪除單個數據 getUserDao().delete(mUser); 刪除多個數據 getUserDao().deleteInTx(mList); 刪除數據ByKey getTABUserDao().deleteByKey(id); 3. 改 修改單個數據 getUserDao().update(mUser); 修改多個數據 getUserDao().updateInTx(mList); 4. 查 查詢所有 getUserDao().loadAll(); getUserDao().queryBuilder().list(); 查詢附加單個條件 .where() .whereOr() 查詢附加多個條件 .where(, , ,) .whereOr(, , ,) 查詢附加排序 .orderDesc() .orderAsc() 查詢限制當頁個數 .limit() 查詢總個數 .count()