国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

GreenDao3.0配置及使用

2019-11-06 09:52:37
字體:
來源:轉載
供稿:網友

一、GreenDao3.0的配置

1、在build.gradle的目錄中添加如下代碼

apply plugin: 'org.greenrobot.greendao'buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' }}greendao { //數據庫的版本號,如果添加表,或者某表結構改變了要修改這個,否則,再次運行會報沒有這個表或者沒有這個列的錯誤 schemaVersion 1 //可以自己定義,存放Dao的路徑 daoPackage 'com.trt.greendao.gen' //生成數據庫文件的目錄,可以將生成的文件放到我們的java目錄中,而不是build中,這樣就不用額外的設置資源目錄了 targetGenDir 'src/main/java'}

2、在根目錄dependencies下添加包的依賴

compile 'org.greenrobot:greendao:3.0.1' compile 'org.greenrobot:greendao-generator:3.0.0'

二、開始使用

創(chuàng)建一個Person實體類并創(chuàng)建該表

@Entitypublic class Person { @Id PRivate Long id; private String name; private String sex; private String address; private String phone; private String email; @Transient private String aa; }

編譯之后就會變成這個樣子(多了set和get方法)

@Entitypublic class Person { @Id private Long id; private String name; private String sex; private String address; private String phone; private String email; @Transient private String aa; public String getAddress() { return this.address; } public void setAddress(String address) { this.address = address; } public String getSex() { return this.sex; } public void setSex(String sex) { this.sex = sex; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getPhone() { return this.phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return this.email; } public void setEmail(String email) { this.email = email; } @Generated(hash = 1113691994) public Person(Long id, String name, String sex, String address, String phone, String email) { this.id = id; this.name = name; this.sex = sex; this.address = address; this.phone = phone; this.email = email; } @Generated(hash = 1024547259) public Person() { }}

同時看你的目錄結構是不是多了你剛剛在build.gradle中寫的那個目錄 這里寫圖片描述

在該目錄下可以看到多了三個文件

DaoMaster DaosessionPersonDao

當你在此創(chuàng)建實體類的時候就會出現相應的xxXDao文件,而DaoMaster和DaoSession只有一份,但是里面的內容會不斷的更新。

準備工作弄完了,那怎么得到想要的數據庫和怎么操作呢?

寫一個工具類用來獲取xxXDao文件(xxXDao文件是進行操作的)

public class GreenDaoManager { private static GreenDaoManager mInstance; private DaoMaster mDaoMaster; private DaoSession mDaoSession; private GreenDaoManager() { DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(Mainapplication.getContext(),"數據庫名稱", null); mDaoMaster = new DaoMaster(devOpenHelper.getWritableDatabase()); mDaoSession = mDaoMaster.newSession(); } public static GreenDaoManager getInstance() { if (mInstance == null) { mInstance = new GreenDaoManager(); } return mInstance; } public DaoSession getSession() { return mDaoSession; }}

我們可以在Application中對數據庫進行初始化

GreenDaoManager.getInstance();

三、得到xxXDao對象進行增刪改查

1、得到xxXDao對象

PersonDao personDao = GreenDaoManager.getInstance().getSession().getPersonDao();

2、添加數據

Person person = new Person(1l,"美年","女","南京","15523439808","dddd");//使用事務插入數據,若數據存在 就覆蓋之前的內容(一般后綴帶Tx的都是事務性操作)personDao.insertOrReplaceInTx(person);

3、刪除數據

PersonDao personDao = GreenDaoManager.getInstance().getSession().getPersonDao();Person person = personDao.load(3l); if(person!=null){ personDao.delete(person); }

4、修改數據

PersonDao personDao = GreenDaoManager.getInstance().getSession().getPersonDao();Person person = personDao.load(3l); if(person!=null){ person.setName("呵呵"); }//使用事務更新數據personDao.updateInTx(person);

5、查找數據

//獲取xxXDao對象PersonDao personDao = GreenDaoManager.getInstance().getSession().getPersonDao();//查詢所有的數據personDao.loadAll();//根據key值查數據personDao.load(1l);//根據where條件查詢數據,返回為List集合 personDao.queryBuilder().where(PersonDao.Properties.Sex.eq("男")).build().list();//根據where條件查詢數據,返回為一個 personDao.queryBuilder().where(PersonDao.Properties.Id.eq(1l)).build().unique();

四、greendao中的注解

1、 @Entity 定義實體 @nameInDb 在數據庫中的名字,如不寫則為實體中類名 @indexes 索引 @createInDb 是否創(chuàng)建表,默認為true,false時不創(chuàng)建 @schema 指定架構名稱為實體 @active無論是更新生成都刷新

2、@Id主鍵

3、@NotNull 不為null

4、@Unique 唯一約束

5、@ToMany一對多

6、@OrderBy 排序

7、@ToOne 一對一

8、 @Transient 不存儲在數據庫中

9、@generated 由greendao產生的構造函數或方法


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 马山县| 泽普县| 罗城| 文水县| 金川县| 盐边县| 紫阳县| 连江县| 施秉县| 洪湖市| 新和县| 遵义县| 新龙县| 临城县| 吐鲁番市| 峨山| 陕西省| 沅陵县| 巴塘县| 周宁县| 奈曼旗| 玉树县| 卢氏县| 海宁市| 朝阳区| 盐边县| 玛曲县| 安吉县| 娄底市| 梨树县| 封丘县| 中江县| 来宾市| 平塘县| 巴青县| 保靖县| 太原市| 沙坪坝区| 南通市| 大厂| 莱西市|