使用ORM数据库: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//数据库版本号

daoPackage 'com.xxx.xxx.greendao'//设置 DaoMaster、DaoSession、Dao 包名

targetGenDir 'src/main/java'//设置 DaoMaster、DaoSession、Dao 目录

//targetGenDirTest:设置生成单元测试目录

//generateTests:设置自动生成单元测试用例

    }

}

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.  相关注解说明 :

3.1. 实体@Entity 注解

schema:告知 GreenDao 当前实体属于哪个 schema

active:标记一个实体处于活跃状态,活动实体有更新、删除和刷新方法

nameInDb:在数据库中使用的别名,默认使用的是实体的类名

indexes:定义索引,可以跨越多个列

createInDb:标记创建数据库表

3.2. 基础属性注解

@Id:主键 Long 型,可以通过@Id(autoincrement = true)设置自增长

@Property:设置一个非默认关系映射所对应的列名,默认是使用字段名,例如:@Property(nameInDb = “name”)

@NotNull:设置数据库表当前列不能为空

@Transient:添加此标记后不会生成数据库表的列

3.3. 索引注解

@Index:使用@Index 作为一个属性来创建一个索引,通过 name 设置索引别名,也可以通过 unique 给索引添加约束

@Unique:向数据库添加了一个唯一的约束

3.4. 关系注解:

@ToOne:定义与另一个实体(一个实体对象)的关系

@ToMany:定义与多个实体对象的关系

4. 当编写好实体类并添加了注解之后,点击Make Project或者Make Module * ,就会在自己设定的目录下看到生成的类文件,并且

会自动生成各个属性的 get,set 方法

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

DaoMaster.DevOpenHelper openHelper=new DaoMaster.DevOpenHelper(上下文,数据库名字);//也有三个参数的构造,第三个参

数是游标工厂

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(主键) :根据主键删除一条记录。

delete(对象) :根据实体类删除一条记录,一般结合查询方法,查询出一条记录之后删除。

deleteAll(): 删除所有记录。

6.3. 改:update(对象);//应该是根据主键改的

6.4. 查: loadAll():查询所有记录

load(Long key):根据主键查询一条记录

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();//分页查询,现在是查询第 1 页,每页 20 条数据

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容