使用ORM數(shù)據(jù)庫:greenDao

1. 添加依賴:

// 在總的 build.gradle 中

buildscript {

repositories {

jcenter()

?mavenCentral() // 加入倉庫

}

dependencies {

classpath 'com.android.tools.build:gradle:2.3.1'

?classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' // 添加插件

}

}

// 在應用程序的 build.grdle 中

apply plugin: 'com.android.application'

apply plugin: 'org.greenrobot.greendao' //添加應用插件

dependencies {

compile 'org.greenrobot:greendao:3.0.1'

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

}

//應用程序的 build.grdle 的 android 中

android{

????...

greendao {

schemaVersion 1//數(shù)據(jù)庫版本號

daoPackage 'com.xxx.xxx.greendao'//設(shè)置 DaoMaster设拟、DaoSession、Dao 包名

targetGenDir 'src/main/java'//設(shè)置 DaoMaster久脯、DaoSession纳胧、Dao 目錄

//targetGenDirTest:設(shè)置生成單元測試目錄

//generateTests:設(shè)置自動生成單元測試用例

????}

}

2. 使用樣例:

實體類 User

@Entity//標示是一個greenDao需要生成的類

public class User {

@Id(autoincrement = true)//標示是自增長的id,必須是Long型

private Long id;

private String name;

????private int age;

????@Transient//表示不會存儲此字段

? ? private boolean isCheck;

}

3.? 相關(guān)注解說明 :

3.1. 實體@Entity 注解

schema:告知 GreenDao 當前實體屬于哪個 schema

active:標記一個實體處于活躍狀態(tài),活動實體有更新帘撰、刪除和刷新方法

nameInDb:在數(shù)據(jù)庫中使用的別名跑慕,默認使用的是實體的類名

indexes:定義索引,可以跨越多個列

createInDb:標記創(chuàng)建數(shù)據(jù)庫表

3.2. 基礎(chǔ)屬性注解

@Id:主鍵 Long 型摧找,可以通過@Id(autoincrement = true)設(shè)置自增長

@Property:設(shè)置一個非默認關(guān)系映射所對應的列名核行,默認是使用字段名,例如:@Property(nameInDb = “name”)

@NotNull:設(shè)置數(shù)據(jù)庫表當前列不能為空

@Transient:添加此標記后不會生成數(shù)據(jù)庫表的列

3.3. 索引注解

@Index:使用@Index 作為一個屬性來創(chuàng)建一個索引蹬耘,通過 name 設(shè)置索引別名芝雪,也可以通過 unique 給索引添加約束

@Unique:向數(shù)據(jù)庫添加了一個唯一的約束

3.4. 關(guān)系注解:

@ToOne:定義與另一個實體(一個實體對象)的關(guān)系

@ToMany:定義與多個實體對象的關(guān)系

4. 當編寫好實體類并添加了注解之后,點擊Make Project或者Make Module * ,就會在自己設(shè)定的目錄下看到生成的類文件,并且

會自動生成各個屬性的 get,set 方法

5. 初始化(一般在 Application 中)

DaoMaster.DevOpenHelper openHelper=new DaoMaster.DevOpenHelper(上下文,數(shù)據(jù)庫名字);//也有三個參數(shù)的構(gòu)造,第三個參

數(shù)是游標工廠

Database db=openHelper.getWritableDb();

DaoMaster daoMaster=new DaoMaster(db);

ormDao=daoMaster.newSession();//這個 ormDao 就是要用于操作的

6. 增刪改查的操作(要 try 一下,如果有異常表示操作失敗)

6.1. 增:ormDao.get 實體類名 Dao().insert(對象);//注意,Long 型 id 如果傳入 null,則會自增長

6.2. 刪: deleteBykey(主鍵) :根據(jù)主鍵刪除一條記錄。

delete(對象) :根據(jù)實體類刪除一條記錄综苔,一般結(jié)合查詢方法惩系,查詢出一條記錄之后刪除。

deleteAll(): 刪除所有記錄如筛。

6.3. 改:update(對象);//應該是根據(jù)主鍵改的

6.4. 查: loadAll():查詢所有記錄

load(Long key):根據(jù)主鍵查詢一條記錄

queryBuilder().list():返回:List 列表

queryBuilder().where(UserDao.Properties.Name.eq(“”)).list():返回:List 列表

queryRaw(String where,String selectionArg):返回:List 列表

6.5. 高級查詢:

.orderAsc(類.字段)//按照字段進行正序排序,應該有 desc,倒序

.or()//條件或者,可以加多個條件,中間用逗號隔開

.and()//條件并且,可以加多個條件,中間用逗號隔開

queryBuilder() .offset(0* 20).limit(20).list();//分頁查詢,現(xiàn)在是查詢第 1 頁,每頁 20 條數(shù)據(jù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末堡牡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子杨刨,更是在濱河造成了極大的恐慌晤柄,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拭嫁,死亡現(xiàn)場離奇詭異可免,居然都是意外死亡,警方通過查閱死者的電腦和手機做粤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捉撮,“玉大人怕品,你說我怎么就攤上這事〗碓猓” “怎么了肉康?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灼舍。 經(jīng)常有香客問我吼和,道長,這世上最難降的妖魔是什么骑素? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任炫乓,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘末捣。我一直安慰自己侠姑,他們只是感情好,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布箩做。 她就那樣靜靜地躺著莽红,像睡著了一般。 火紅的嫁衣襯著肌膚如雪邦邦。 梳的紋絲不亂的頭發(fā)上安吁,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音燃辖,去河邊找鬼柳畔。 笑死,一個胖子當著我的面吹牛郭赐,可吹牛的內(nèi)容都是我干的薪韩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼捌锭,長吁一口氣:“原來是場噩夢啊……” “哼俘陷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起观谦,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拉盾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后豁状,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捉偏,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年泻红,在試婚紗的時候發(fā)現(xiàn)自己被綠了夭禽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡谊路,死狀恐怖讹躯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缠劝,我是刑警寧澤潮梯,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站惨恭,受9級特大地震影響秉馏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脱羡,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一萝究、第九天 我趴在偏房一處隱蔽的房頂上張望免都。 院中可真熱鬧,春花似錦糊肤、人聲如沸琴昆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽业舍。三九已至,卻和暖如春升酣,著一層夾襖步出監(jiān)牢的瞬間舷暮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工噩茄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留下面,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓绩聘,卻偏偏與公主長得像沥割,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子凿菩,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容