Android資料庫GreenDao配置
阿新 • • 發佈:2018-11-05
1.新增依賴
在moudle的build.gradle中新增依賴
implementation 'org.greenrobot:greendao:3.2.2'
implementation 'org.greenrobot:greendao-generator:3.2.2'
2.在專案的build.gradle中配置
buildscript { repositories { ... mavenCentral() } dependencies { ... classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' } }
3.對greendao生成檔案進行配置
greendao {
schemaVersion 1
daoPackage 'com.xuke.androidone.dao.gen'
targetGenDir 'src/main/java-gen'
}
說明:
- schemaVersion 為版本號,每次路過資料庫表發生變化時需要升級資料庫版本
- daoPackage 檔名,一般為應用包名+生成檔名
- targetGenDir 路徑,一般放在src/main/java-gen下面
4.建立實體類
@Entity public class UserBean { private String position; private String birthday; private String alumni_id; private String sex; private String groupName; private String picture_xd; private String profession; @Id private String accountNum; private String phoneNum; private String intrestType; private String token; private String name; private String workUtil; private String pictureRT; private String departName; private String authenticated; private String isChangedSex; private String hobby; private String channels; private String refreshToken; private String baseInfoId; private String sign; private String picture; private String email; private String address; }
@Entity 實體標識
@Id 每條資料對應的位置
編寫完實體類之後,Build ->Make Project(Ctrl+F9),程式就會自動編譯生成dao檔案
兩個問題:
(1)可能build完後會報錯
Error:The number of method references in a .dex file cannot exceed 64K.
這個是android裡面對檔案的限制,如果出現這種錯誤,配置一下MultiDex就行了
在moudle的build.gradle配置
android { defaultConfig { ... minSdkVersion 24 targetSdkVersion 26 multiDexEnabled true } ... } dependencies { //加入multidex依賴 compile 'com.android.support:multidex:1.0.1' }
在自定義的Application中初始化,重寫attachBaseContext.
public class MyApplication extends Application {
....
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(context);
Multidex.install(this);
}
}
(2)自動生成java-gen需要加入到專案中,自動生成的包路徑是剛才設定的src/main/java-gen
android{
....
sourceSets {
main {
java.srcDirs = ['src/main/java', 'src/main/java-gen']
}
}
}
5.建立資料庫
public GreenDaoManager() {
//建立一個數據庫,預設的 DaoMaster.DevOpenHelper 會在資料庫升級時,刪除所有的表,意味著這將導致資料的丟失。 所以,在正式的專案中,你還應該做一層封裝,來實現資料庫的安全升級。
mySQLiteOpenHelper = new DaoMaster.DevOpenHelper(MyApplication.getInstance(), "xuke_db", null);
//該資料庫連線屬於 DaoMaster,所以多個 Session 指的是相同的資料庫連線。
mDaoMaster = new DaoMaster(mySQLiteOpenHelper.getWritableDatabase());
mDaoSession = mDaoMaster.newSession();
}
6.greendao的操作(增、刪、查、改)
UserBeanDao loginUserDao = mDaoSession.getUserBeanDao();
(1).增
loginUserDao.insert(loginUser);
(2).刪
loginUserDao.delete(loginUser);
(3).查
loginUserDao.loadAll()
(4).改
loginUserDao.update(loginUser);
這是最基本的幾個操作,greendao還提供了很多的方法。