美文网首页
Android:简单粗暴的GreenDao配置

Android:简单粗暴的GreenDao配置

作者: 测天测地测空气 | 来源:发表于2018-08-06 18:40 被阅读0次

    1、在Project的build.gradle中配置classpath
    dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0'
    classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
    

    2、在model中的build.gradle中配置
    1、配置apply
    apply plugin: 'com.android.application'
    apply plugin: 'org.greenrobot.greendao' // apply plugin
    2、添加依赖
    compile 'org.greenrobot:greendao:3.2.2' // add library
    3、配置数据库版本以及代码生成位置
    android {

        greendao {
            schemaVersion 1  //数据库的版本
            daoPackage 'com.example.administrator.greendaodemo_h1709b.dao' // 一般为app包名+生成文件的文件夹名   文件生成的具体目录
            targetGenDir 'src/main/java' //生成文件路径
        }
    }
    

    4、sync now

    写实体类:https://blog.csdn.net/zhjianglin/article/details/78773028
    @Entity:设置表名,默认类名为表名
    @Id:设置主键 @Id(autoincrement = true)设置自增长
    @Property(nameInDb = "name")设置成员变量对应表中字段的名称
    @NotNull//不能为空
    @Unique//唯一约束
    @Transient//成员变量不生成表字段

    @Generated:实体类的构造方法上使用,不自己调用,会自动生成
    @Convert:指定自定义类型(@link PropertyConverter)   如果成员变量是集合,可以使用这个
    @Index:使用@Index作为一个属性来创建一个索引;定义多列索引(@link Entity#indexes())  //TODO 如何使用
    @JoinEntity:定义表连接关系
    @JoinProperty:定义名称和引用名称属性关系
    @Keep:注解的代码段在GreenDao下次运行时保持不变
    
          1.注解实体类:默认禁止修改此类
          2.注解其他代码段,默认禁止修改注解的代码段
    @OrderBy:
         * 通过逗号间隔创建表的属性索引,例如 “propertyA,propertyB,propertyC” 
         * 若要指定排序, 需在列明以后添加 ASC(升序) 或者DESC(降序) ,  例如 "propertyA DESC, propertyB ASC" 
         *  默认按升序排序 
         *  若不设置默认根据主键排序 
    @ToMany:定义与多个实体对象的关系
    @ToOne:定义与另一个实体(一个实体对象)的关系
    
    
    
    
    
    AbstractDao:
    

    long count():获取数据库中数据的数量

    // 数据删除相关
    void delete(T entity):从数据库中删除给定的实体
    void deleteAll() :删除数据库中全部数据
    void deleteByKey(K key):从数据库中删除给定Key所对应的实体
    void deleteByKeyInTx(java.lang.Iterable<K> keys):使用事务操作删除数据库中给定的所有key所对应的实体
    void deleteByKeyInTx(K... keys):使用事务操作删除数据库中给定的所有key所对应的实体
    void deleteInTx(java.lang.Iterable<T> entities):使用事务操作删除数据库中给定实体集合中的实体
    void deleteInTx(T... entities):使用事务操作删除数据库中给定的实体

    // 数据插入相关
    long insert(T entity):将给定的实体插入数据库
    void insertInTx(java.lang.Iterable<T> entities):使用事务操作,将给定的实体集合插入数据库
    void insertInTx(java.lang.Iterable<T> entities, boolean setPrimaryKey):使用事务操作,将给定的实体集合插入数据库,
    并设置是否设定主键
    void insertInTx(T... entities):将给定的实体插入数据库
    long insertOrReplace(T entity):将给定的实体插入数据库,若此实体类存在,则覆盖
    void insertOrReplaceInTx(java.lang.Iterable<T> entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖
    void insertOrReplaceInTx(java.lang.Iterable<T> entities, boolean setPrimaryKey):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖
    并设置是否设定主键
    void insertOrReplaceInTx(T... entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖
    long insertWithoutSettingPk(T entity):将给定的实体插入数据库,但不设定主键

    // 新增数据插入相关API
    void save(T entity):将给定的实体插入数据库,若此实体类存在,则更新
    void saveInTx(java.lang.Iterable<T> entities):将给定的实体插入数据库,若此实体类存在,则更新
    void saveInTx(T... entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则更新

    // 加载相关
    T load(K key):加载给定主键的实体
    java.util.List<T> loadAll():加载数据库中所有的实体
    protected java.util.List<T> loadAllAndCloseCursor(android.database.Cursor cursor) :从cursor中读取、返回实体的列表,并关闭该cursor
    protected java.util.List<T> loadAllFromCursor(android.database.Cursor cursor):从cursor中读取、返回实体的列表
    T loadByRowId(long rowId) :加载某一行并返回该行的实体
    protected T loadUnique(android.database.Cursor cursor) :从cursor中读取、返回唯一实体
    protected T loadUniqueAndCloseCursor(android.database.Cursor cursor) :从cursor中读取、返回唯一实体,并关闭该cursor

    //更新数据
    void update(T entity) :更新给定的实体
    protected void updateInsideSynchronized(T entity, DatabaseStatement stmt, boolean lock)
    protected void updateInsideSynchronized(T entity, android.database.sqlite.SQLiteStatement stmt, boolean lock)
    void updateInTx(java.lang.Iterable<T> entities) :使用事务操作,更新给定的实体
    void updateInTx(T... entities):使用事务操作,更新给定的实体

    相关文章

      网友评论

          本文标题:Android:简单粗暴的GreenDao配置

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