Android之GreenDao3.0使用

首先附上项目地址:https://github.com/greenrobot/greenDAO
API文档:http://greenrobot.org/files/greendao/javadoc/current/

第一步:了解注解。

注解API:
@Entity 参数:

schema:告知GreenDao当前实体属于哪个schema
active:标记一个实体处于活跃状态,活动实体有更新、删除和刷新方法
nameInDb:在数据库中使用的别名,默认使用的是实体的类名
indexes:定义索引,可以跨越多个列
createInDb:标记创建数据库表

基础属性注解

@Id:主键 Long 型,[可以通过@Id](mailto:%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87@id)(autoincrement = true)设置自增长
@Property:设置一个非默认关系映射所对应的列名,默认是使用字段名,例如:@Property(nameInDb = "name")
@NotNull:设置数据库表当前列不能为空
@Transient:添加此标记后不会生成数据库表的列

索引注解

@Index:[使用@Index作为一个属性来创建一个索引](mailto:%E4%BD%BF%E7%94%A8@index%E4%BD%9C%E4%B8%BA%E4%B8%80%E4%B8%AA%E5%B1%9E%E6%80%A7%E6%9D%A5%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%B4%A2%E5%BC%95),通过name设置索引别名,也可以通过unique给索引添加约束
@Unique:向数据库添加了一个唯一的约束

关系注解

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

第二步:编译项目生成所需文件

编写完数据库实体类之后,编译一下项目,会在build目录下生成三个文件DaoMaster,DaoSession,XXXDao。

编译项目

第三步:初始化GreenDao

一般是在Application里初始化,

        DevOpenHelper helper = new DevOpenHelper(this, "DateBaseName");
        Database db = helper.getWritableDb();
        daoSession = new DaoMaster(db).newSession();

注意:DevOpenHelper有两个重载方法:DevOpenHelper(Context context,String name) 和DevOpenHelper(Context context,String name,CursorFactory factory)。context上下文这个不用多说,name数据库的名字,cursorFactory游标工厂,一般不用,传入null或者使用两个参数的方法即可。
为了开发方便,我们会对外提供一个getDaoSession()的方法供外部使用。

public DaoSession getDaoSession() {
        return daoSession;
    }

在activity中使用:

        DaoSession daoSession = ((App) getApplication()).getDaoSession();
        DateBaseNameDao = daoSession.getDateBaseNameDao();

剩下的就是拿着Dao实例进行增删改查的操作。



作者:吃饱了就送
链接:https://www.jianshu.com/p/c66edf56d904
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

发布了395 篇原创文章 · 获赞 52 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/qq_23174861/article/details/98845579