美文网首页
GreenDao介绍

GreenDao介绍

作者: andpy | 来源:发表于2017-09-12 10:46 被阅读19次

    GreenDao

    **GitHub地址: **https://github.com/greenrobot/greenDAO/
    **文档地址: **http://greenrobot.org/greendao/documentation/

    市面上面主流的数据库

    • GreenDao
    • Reaml
    • Ormlite
    • Litepal
    • SugarORM

    Orm的优势

    orm对象关系映射,把数据映射成对象

    • 让业务代码访问对象,而不是数据库
    • 隐藏了面向对象的逻辑sql的查询详情
    • 无需处理数据库的实现

    ORM相比android自身提供的api

    • 需拼装sql
    • 需要自己写操作数据库的常规的代码
    • 没有实现级联查询
    • 不能把数据映射成对象

    GreenDao

    如何选择一个开源框架

    1. 性能
    2. 文档的完整性
    3. 流行因素
    4. 使用是否容易,学习成本
    5. 扩展性如何
      greendao综合来看,比较满足

    AndroidStudio接入

    文档地址:http://greenrobot.org/greendao/documentation/introduction/

    //项目的build.grade
     dependencies {
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
      }
    //appmodule配置  Android模块下面
    /*针对greenDao的一些配置*/
    greendao {
        schemaVersion 1 //数据库版本号
        daoPackage 'com.rao.demo.activity.home.greendao.dao' //自动生成的工具类的包名
        targetGenDir 'src/main/java' //路径
    }
    
    //添加依赖
     compile 'org.greenrobot:greendao:3.2.2'
    

    gradle配置,基础属性

    文档地址:http://greenrobot.org/greendao/documentation/modelling-entities/

    // In the build.gradle file of your app project:
    android {
        ....
    } 
    greendao {
        schemaVersion 2 //定义版本
        daoPackage      //生成相文件存放路径
        targetGenDir    //生产资源存放路径
        generateTests   //是否生成单元测试
        ...
    }
    
    @Entity
    public class User {
        @Id(autoincrement = true)
        private Long id;
    
        @Property(nameInDb = "USERNAME")
        private String name;
    
        @NotNull
        private int repos;
    
        @Transient
        private int tempUsageCount;
    
        ...
    }
    

    Session操作实体的类

    地址:http://greenrobot.org/greendao/documentation/sessions/

    daoMaster = new DaoMaster(db);
    daoSession = daoMaster.newSession();
    

    查询的操作

    地址:http://greenrobot.org/greendao/documentation/queries/

    List<User> joes = userDao.queryBuilder()
      .where(Properties.FirstName.eq("Joe"))
      .orderAsc(Properties.LastName)
      .list();
    

    根据文档和dmeo案例,来看,简单入门

    相关文章

      网友评论

          本文标题:GreenDao介绍

          本文链接:https://www.haomeiwen.com/subject/cffcsxtx.html