GreenDao使用

2018-10-25  本文已影响0人  欧阳峰_oyf

- @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):使用事务操作,更新给定的实体

上一篇 下一篇

猜你喜欢

热点阅读