美文网首页
GreenDao使用

GreenDao使用

作者: 欧阳峰_oyf | 来源:发表于2018-10-25 11:06 被阅读0次

    - @Id :主键 long/Long型,可以通过@Id(autoincrement = true)设置自增长 

    - @Property:设置一个非默认关系映射所对应的列名,默认是的使用字段名 举例:@Property (nameInDb=”name”) 

    - @NotNul:设置数据库表当前列不能为空 

    - @Transient :添加次标记之后不会生成数据库表的列 

    1.)索引注解 

    - @Index:使用@Index作为一个属性来创建一个索引,通过name设置索引别名,也可以通过unique给索引添加约束 

    - @Unique:向数据库列添加了一个唯一的约束 

    2.)关系注解 

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

    - @ToMany:定义与多个实体对象的关系

    (@ToMany的属性referencedJoinProperty,类似于外键约束。

    @JoinProperty 对于更复杂的关系,可以使用这个注解标明目标属性的源属性。

    @JoinEntity 如果你在做多对多的关系,有其他的表或实体参与,可以给目标属性添加这个额外的注解(感觉不常用吧)

    方法

    voidattachEntity(T entity):

    longcount():获取数据库中数据的数量

    // 数据删除相关 

    voiddelete(T entity):从数据库中删除给定的实体

    voiddeleteAll():删除数据库中全部数据

    voiddeleteByKey(K key):从数据库中删除给定Key所对应的实体

    voiddeleteByKeyInTx(java.lang.Iterable<K> keys):使用事务操作删除数据库中给定的所有key所对应的实体

    voiddeleteByKeyInTx(K... keys):使用事务操作删除数据库中给定的所有key所对应的实体

    voiddeleteInTx(java.lang.Iterable<T> entities):使用事务操作删除数据库中给定实体集合中的实体

    voiddeleteInTx(T... entities):使用事务操作删除数据库中给定的实体

    // 数据插入相关 

    longinsert(T entity):将给定的实体插入数据库

    voidinsertInTx(java.lang.Iterable<T> entities):使用事务操作,将给定的实体集合插入数据库

    voidinsertInTx(java.lang.Iterable entities,booleansetPrimaryKey):使用事务操作,将给定的实体集合插入数据库,并设置是否设定主键 

    voidinsertInTx(T... entities):将给定的实体插入数据库

    longinsertOrReplace(T entity):将给定的实体插入数据库,若此实体类存在,则覆盖

    voidinsertOrReplaceInTx(java.lang.Iterable<T> entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖

    voidinsertOrReplaceInTx(java.lang.Iterable entities,booleansetPrimaryKey):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖并设置是否设定主键 

    voidinsertOrReplaceInTx(T... entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则覆盖

    longinsertWithoutSettingPk(T entity):将给定的实体插入数据库,但不设定主键

    // 新增数据插入相关API 

    voidsave(T entity):将给定的实体插入数据库,若此实体类存在,则更新

    voidsaveInTx(java.lang.Iterable<T> entities):将给定的实体插入数据库,若此实体类存在,则更新

    voidsaveInTx(T... entities):使用事务操作,将给定的实体插入数据库,若此实体类存在,则更新

    // 加载相关 

    Tload(K key):加载给定主键的实体

    java.util.ListloadAll():加载数据库中所有的实体

    protectedjava.util.ListloadAllAndCloseCursor(android.database.Cursor cursor):从cursor中读取、返回实体的列表,并关闭该cursor

    protectedjava.util.ListloadAllFromCursor(android.database.Cursor cursor):从cursor中读取、返回实体的列表

    TloadByRowId(longrowId):加载某一行并返回该行的实体

    protectedTloadUnique(android.database.Cursor cursor):从cursor中读取、返回唯一实体

    protectedTloadUniqueAndCloseCursor(android.database.Cursor cursor):从cursor中读取、返回唯一实体,并关闭该cursor

    //更新数据 

    voidupdate(T entity):更新给定的实体

    protectedvoidupdateInsideSynchronized(T entity, DatabaseStatement stmt,booleanlock)

    protectedvoidupdateInsideSynchronized(T entity, android.database.sqlite.SQLiteStatement stmt,booleanlock)

    voidupdateInTx(java.lang.Iterable<T> entities):使用事务操作,更新给定的实体

    voidupdateInTx(T... entities):使用事务操作,更新给定的实体

    相关文章

      网友评论

          本文标题:GreenDao使用

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