上一篇数据库greenDAO的使用(一)我们介绍了greenDAO的相关配置与注解,现在开始介绍数据的操作增、删、查、改。
首先我们新建一个实体类
点击工具栏Build菜单下的Make Project(Mac快捷键 ⌘F9 ),项目会自动构建,在我们设置的daoPackage(默认包名.gen)目录下生成相应的DaoMaster、DaoSession及UserDao,相应的Uer类也会自动生成构造与set、get方法。
然后我们定义一个管理类用于获取DaoMaster与DaoSession
在这里我们需要自定义application
这样基本的配置结结束了
AbstractDao常用方法
增
- insert(T entity):将给定的实体插入数据库
- insertWithoutSettingPk(T entity):将给定的实体插入数据库,但不设定主键
- insertInTx(Iterable
entities):使用事务操作,将给定的实体集合插入数据库 - insertInTx(Iterable
entities, boolean setPrimaryKey)使用事务操作,将给定的实体集合插入数据库, 并设置是否设定主键 - insertInTx(T… entities):将给定的实体插入数据库
- insertOrReplace(T entity):将给定的实体插入数据库,若此实体存在,则覆盖
- insertOrReplaceInTx(Iterable
entities):使用事务操作,将给定的实体插入数据库,若此实体存在则覆盖 - insertOrReplaceInTx(Iterable
entities, boolean setPrimaryKey)使用事务操作,将给定的实体插入数据库,若此实体存在则覆盖,并设置是否设定主键 - insertOrReplaceInTx(T… entities):用事务操作,将给定的实体插入数据库,若此实体类在则覆盖
|
|
删
- delete(T entity):从数据库中删除给定的实体
- deleteAll() :删除数据库中全部数据
- deleteByKey(K key):从数据库中删除给定Key所对应的实体
- deleteByKeyInTx(java.lang.Iterable
keys):使用事务操作删除数据库中给定的所有key所对应的实体 - deleteByKeyInTx(K… keys):使用事务操作删除数据库中给定的所有key所对应的实体
- deleteInTx(java.lang.Iterable
entities):使用事务操作删除数据库中给定实体集合中的实体 - deleteInTx(T… entities):使用事务操作删除数据库中给定的实体
|
|
查
- T load(K key):加载给定主键的实体
- java.util.List
loadAll() - T loadByRowId(long rowId) :加载某一行并返回该行的实体
|
|
改
- update(T entity) :更新给定的实体
- updateInTx(java.lang.Iterable
entities) :使用事务操作,更新给定的实体 - updateInTx(T… entities):使用事务操作,更新给定的实体
|
|
greenDAO支持使用queryBuilder实现更加复杂的查询
queryBuilder
QueryBuilder能够让你在不涉及SQL语句的情况下查询实体。
1.where:条件查询 参数为逻辑与的关系(AND)
查询姓名是黎明并且年龄>=10的数据
关于属性的一些操作
- eq:=
- notEq:<>
- like:LIKE
- between:BETWEEN … AND …
- in:IN (…, …, …)
- notIn:NOT IN (…, …, …)
- gt:>
- lt:<
- ge:>=
- le:<=
- isNull:IS NULL
- isNotNull:IS NOT NULL
2.whereOr:条件查询 参数为逻辑或的关系(OR)
查询姓名是黎明或者年龄>=10的数据
3.or:条件OR在where或者whereOr里面使用
4.and:条件AND在where或者whereOr里面使用
5.join:连表查询
这里我们新建一个Address的表
然后我们添加一个ToOne的关系
然后Make Project 自动生成相关代码
假设我们Address表中添加如下数据
插入一条用户数据
现在我们便可以进行连表查询了
假设我们查询地址是上海的用户
6.orderAsc:升序
7.orderDesc 降序
8.limit:返回数据的条目个数
9.offset:偏移量,配合limit使用
|
|
Query
Query类是一个能够执行多次的查询语句
还是上面的例子,查询姓名是黎明并且年龄>=10
然后我们改成查询姓名是小王的
使用setParameter便可执行多次查询语句。
最后
本期主要介绍的数据的基本操作,下期我们介绍数据集的升级问题。