a505541778的gravatar头像
a5055417782017-07-28 11:46:24
Android数据存储框架GreenDao 3.0使用详解

GreenDao 3.0 的使用

1.简介

简单的讲,GreenDao是一个将对象映射到 SQLite数据库中的轻量且快速的 ORM 解决方案。(GreenDaois a light & fast ORM solution that maps objects to SQLite databases.)

2.使用

2-1.导入相关的包

compile 'org.greenrobot:greendao:3.2.0'

2.2.配置(Module)

greendao {

     schemaVersion 1 //数据库版本

     daoPackage 'com.lee.codeplus.db'  //默认生成的包名

     targetGenDir 'src/main/java'  //根目录

}

 

2.3.在build.gradle(Project)中进行配置

buildscript {

     repositories {

     jcenter()

}

dependencies {

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

     classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'

}

}

3.使用

3.1  实体类的创建

@Entity

public class ArticleFile {

@Id

private Long id;

private String Category;

private String author;

private String createdAt;

private String objectId;

private String postType;

private String textContent;

private String updatedAt;

private String webUrl;

}

注:

(一) @Entity 定义实体

@nameInDb 在数据库中的名字,如不写则为实体中类名

@indexes 索引

@createInDb 是否创建表,默认为true,false时不创建

@schema 指定架构名称为实体

@active 无论是更新生成都刷新

(二) @Id

(三) @NotNull 不为null

(四) @Unique 唯一约束

(五) @ToMany 一对多

(六) @OrderBy 排序

(七) @ToOne 一对一

(八) @Transient 不存储在数据库中

(九) @generated 由greendao产生的构造函数或方法

3.2 Make Project自动生成Dao类等

 

Android数据存储框架GreenDao 3.0使用详解

图上3个选中的类就是生成的。

3.3 在Application中初始化

 

private DaoMaster mDaoMaster;

private DaoSession mDaoSession;

private DaoMaster.DevOpenHelper mHelper;

private SQLiteDatabase db;

public static BaseApplication instances;

 

@Override

public voidonCreate() {

     super.onCreate();

     instances=this;

     initDataBase();

}

public static BaseApplication  getInstances() {

     return  instances;

}

private void initDataBase() {

// 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。

     mHelper=newDaoMaster.DevOpenHelper(this,"Code-db", null);

     db=mHelper.getWritableDatabase();

// 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。

     mDaoMaster=newDaoMaster(db);

     mDaoSession=mDaoMaster.newSession();

}

public DaoSession getDaoSession() {

     return mDaoSession;

}

public SQLiteDatabase getDb() {

     return db;

}

3.4 增加数据

ArticleFileDao dao =BaseApplication.getInstances().getDaoSession().getArticleFileDao();

dao.insert(article);

3.5.删除数据

ArticleFileDao dao = BaseApplication.getInstances().getDaoSession().getArticleFileDao();

ArticleFileDaodao.queryBuilder().where(ArticleFileDao.Properties.ObjectId.eq(article.getObjectId())).build().unique();

dao.deleteByKey(article.getId())

 

3.6.修改数据

ArticleFile article = dao.queryBuilder().where(ArticleFileDao.Properties.ObjectId.eq(article.getObjectId())).build().unique();

if(atricle !=null){

article.setAuthor("修改");

dao.updata(article)

}

3.7.查询数据

List <ArticleFile>articles= dao.loadAll();


打赏

分享到:

最近浏览
2037785139月13日
暂无贡献等级
woshimanong8月14日
暂无贡献等级
22303008月1日
最代码贡献等级说明
唐老鸭7月31日
最代码贡献等级说明
jichuang7月28日
暂无贡献等级
Watson7月28日
最代码贡献等级说明
韵味朝阳7月28日
最代码贡献等级说明
最代码官方 LV47月28日
最代码贡献等级说明
最代码广告位
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友