关于greenDAO,看这篇文章就够了

作者: zhangchunlin | 来源:发表于2019-08-27 11:09 被阅读0次

    一、greenDAO简介

    greenDAO是一款开源的面向 Android 的轻便、快捷的 ORM 框架,将 Java 对象映射到SQLite数据库中,我们操作数据库的时候,不再需要编写复杂的 SQL语句, 在性能方面,greenDAO针对 Android 进行了高度优化, 最小的内存开销 、依赖体积小 同时还是支持数据库加密。

    greenDAO.jpeg
    greenDAO项目地址:https://github.com/greenrobot/greenDAO

    二、greenDAO特征

    1、对象映射( ORM)
    greenDAO是ORM 框架,可以非常便捷的将Java 对象映射到 SQLite 数据库中保存。
    2、 高性能
    ORM 框架有很多,比较著名的有 OrmLite , ActiveAndroid 等
    greenDAO官方给出了这三者的性能对比。


    greenDAO、OrmLite、ActiveAndroid

    3、支持加密

    三、greenDAO集成

    1、设置仓库与插件(Project: build.gradle)

        repositories {
            jcenter()
            mavenCentral() // add repository
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.1'
            classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
        }
    }
    

    2、配置依赖 ( Module:app build.gradle )

    apply plugin: 'com.android.application'
    apply plugin: 'org.greenrobot.greendao' // apply plugin
    dependencies {
        implementation 'org.greenrobot:greendao:3.2.2' // add library
    }
    

    3、配置数据库相关信息 ( Module:app build.gradle )

    android {
        greendao {
            //版本号,升级时可配置
            schemaVersion defaultConfig.versionCode
            daoPackage 'xxx.xxx.xxx.xxx'
            targetGenDir 'src/main/java'
        }
    }
    

    4、Sync Project with Gradle Files 同步工程 即可

    四、greenDAO注解解释

    1、@Entity
    表明这个实体类会在数据库中生成一个与之相对应的表
    schema:告知greenDAO当前实体属于哪个 schema
    schema active:标记一个实体处于活跃状态,活动实体有更新、删除和刷新方法
    nameInDb:在数据库中使用的别名,默认使用的是实体的类名,
    indexes:定义索引,可以跨越多个列
    createInDb:标记创建数据库表(默认:true)
    generateConstructors 自动创建全参构造方法(同时会生成一个无参构造方法)(默认:true)
    generateGettersSetters 自动生成 getters and setters 方法(默认:true)

    2、@Id
    对应数据表中的 Id 字段
    3、@Index
    使用@Index作为一个属性来创建一个索引,默认是使用字段名
    4、@Property
    设置一个非默认关系映射所对应的列名,默认是使用字段名
    5、@NotNull
    设置数据库表当前列不能为空
    6、@Transient
    添加此标记后不会生成数据库表的列
    7、@Unique
    表名该属性在数据库中只能有唯一值
    8、@ToOne
    表示一对一关系
    9、@ToMany
    定义一对多个实体对象的关系
    10、@OrderBy
    更加某一字段排序 ,例如:@OrderBy("date ASC")

    5、demo

    @Entity(nameInDb = "tb_user")
    public class UserEntity {
        @Id
        private Long id;
        @Property(nameInDb = "username")
        private String username;
        @Property(nameInDb = "password")
        private String password;
        @Property(nameInDb = "sex")
        private int sex;
        @Property(nameInDb = "birthday")
        private Date birthday;
    

    相关文章

      网友评论

        本文标题:关于greenDAO,看这篇文章就够了

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