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

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

GreenDao3.0簡(jiǎn)單使用

2019-11-08 21:00:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

轉(zhuǎn)自:http://www.jianshu.com/p/4986100eff90

關(guān)于GreenDao

greenDao是一個(gè)將對(duì)象映射到SQLite數(shù)據(jù)庫(kù)中的輕量且快速的ORM解決方案。關(guān)于greenDAO的概念可以看官網(wǎng)greenDAO

greenDAO 優(yōu)勢(shì)

1、一個(gè)精簡(jiǎn)的庫(kù)2、性能最大化3、內(nèi)存開銷最小化4、易于使用的 APIs5、對(duì) Android 進(jìn)行高度優(yōu)化

GreenDao 3.0使用

GreenDao 3.0采用注解的方式來(lái)定義實(shí)體類,通過(guò)gradle插件生成相應(yīng)的代碼。

一,在as中導(dǎo)入相關(guān)的包
compile'org.greenrobot:greendao:3.0.1'compile'org.greenrobot:greendao-generator:3.0.0'
二,在build.gradle中進(jìn)行配置:
apply plugin: 'org.greenrobot.greendao'buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' }}

在gradle的根模塊中加入上述代碼。

三,自定義路徑
greendao { schemaVersion 1 daoPackage 'com.anye.greendao.gen' targetGenDir 'src/main/java'}

在gradle的根模塊中加入上述代碼,就完成了我們的基本配置了。屬性介紹:schemaVersion--> 指定數(shù)據(jù)庫(kù)schema版本號(hào),遷移等操作會(huì)用到;daoPackage --> dao的包名,包名默認(rèn)是entity所在的包;targetGenDir --> 生成數(shù)據(jù)庫(kù)文件的目錄;

四,創(chuàng)建一個(gè)User的實(shí)體類
@Entitypublic class User { @Id PRivate Long id; private String name; @Transient private int tempUsageCount; // not persisted }
五,MakeProject

編譯項(xiàng)目,User實(shí)體類會(huì)自動(dòng)編譯,生成get、set方法并且會(huì)在com.anye.greendao.gen目錄下生成三個(gè)文件;

greenDao

GreenDao使用

public class Myapplication extends Application { private DaoMaster.DevOpenHelper mHelper; private SQLiteDatabase db; private DaoMaster mDaoMaster; private Daosession mDaoSession; public static MyApplication instances; @Override public void onCreate() { super.onCreate(); instances = this; setDatabase(); } public static MyApplication getInstances(){ return instances; }/** * 設(shè)置greenDao */private void setDatabase() { // 通過(guò) DaoMaster 的內(nèi)部類 DevOpenHelper,你可以得到一個(gè)便利的 SQLiteOpenHelper 對(duì)象。 // 可能你已經(jīng)注意到了,你并不需要去編寫「CREATE TABLE」這樣的 SQL 語(yǔ)句,因?yàn)?greenDAO 已經(jīng)幫你做了。 // 注意:默認(rèn)的 DaoMaster.DevOpenHelper 會(huì)在數(shù)據(jù)庫(kù)升級(jí)時(shí),刪除所有的表,意味著這將導(dǎo)致數(shù)據(jù)的丟失。 // 所以,在正式的項(xiàng)目中,你還應(yīng)該做一層封裝,來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的安全升級(jí)。 mHelper = new DaoMaster.DevOpenHelper(this, "notes-db", null); db = mHelper.getWritableDatabase(); // 注意:該數(shù)據(jù)庫(kù)連接屬于 DaoMaster,所以多個(gè) Session 指的是相同的數(shù)據(jù)庫(kù)連接。 mDaoMaster = new DaoMaster(db); mDaoSession = mDaoMaster.newSession();}public DaoSession getDaoSession() { return mDaoSession;}public SQLiteDatabase getDb() { return db; }}

獲取UserDao對(duì)象:

mUserDao = MyApplication.getInstances().getDaoSession().getUserDao();

簡(jiǎn)單的增刪改查實(shí)現(xiàn):

1. 增
mUser = new User((long)2,"anye3");mUserDao.insert(mUser);//添加一個(gè)
2. 刪
mUserDao.deleteByKey(id);
3. 改
mUser = new User((long)2,"anye0803");mUserDao.update(mUser);
4. 查
List<User> users = mUserDao.loadAll();String userName = "";for (int i = 0; i < users.size(); i++) { userName += users.get(i).getName()+",";}mContext.setText("查詢?nèi)繑?shù)據(jù)==>"+userName);

更多的操作就不一一介紹了,大家可以根據(jù)需要去查找資料;

greendao中的注解

(一) @Entity 定義實(shí)體@nameInDb 在數(shù)據(jù)庫(kù)中的名字,如不寫則為實(shí)體中類名@indexes 索引@createInDb 是否創(chuàng)建表,默認(rèn)為true,false時(shí)不創(chuàng)建@schema 指定架構(gòu)名稱為實(shí)體@active 無(wú)論是更新生成都刷新(二) @Id(三) @NotNull 不為null(四) @Unique 唯一約束(五) @ToMany 一對(duì)多(六) @OrderBy 排序(七) @ToOne 一對(duì)一(八) @Transient 不存儲(chǔ)在數(shù)據(jù)庫(kù)中(九) @generated 由greendao產(chǎn)生的構(gòu)造函數(shù)或方法

結(jié)束語(yǔ)

總體來(lái)說(shuō),GreenDao3.0在配置上相對(duì)于2.0要簡(jiǎn)單的多。本文 Demo 下載鏈接:https://github.com/anye0803/GreenDao/,,如果喜歡的話可以star一下。本教程旨在介紹 greenDAO3.0的基本用法與配置,更高級(jí)與詳細(xì)的使用,請(qǐng)參見官網(wǎng)如本文有任何問(wèn)題歡迎指正。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南京市| 太白县| 阿克苏市| 海丰县| 张北县| 西宁市| 吴旗县| 天峨县| 常山县| 昭平县| 民丰县| 全南县| 孝昌县| 苗栗县| 大宁县| 西平县| 永胜县| 阜南县| 苗栗县| 阿坝| 北宁市| 临高县| 太仆寺旗| 同心县| 无锡市| 望城县| 衡阳市| 平湖市| 荣成市| 错那县| 西藏| 科技| 太保市| 三台县| 黑水县| 潜山县| 乌鲁木齐县| 扎赉特旗| 潮州市| 苍南县| 江阴市|