这篇文章主要为大家介绍了Android数据缓存框架内置ORM功能使用教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
使用教程如下
配置初始化
Orm.init(this, OrmConfig.Builder()
.database("dcache_sample")
.tables(Account::class.java)
.version(1)
.build())
在自定义的Application类的入口加入一行配置,database为数据库名,version从1开始每次递增1,tables用来配置需要初始化的表,dcache中所有的表需要实现OrmTable接口。
注解详解
表和列相关
@Table
此注解配置在OrmTable的实现类的类名之上,用来指定一个类映射到表的名称
@Column
此注解配置在OrmTable的实现类的成员属性之上,用来指定一个属性映射到字段的名称
@Ignore
此注解的优先级高于@Column,配置在OrmTable的实现类的成员属性之上,配置了此注解的成员属性,不会作为表的字段进行映射
约束相关
@NotNull
此注解配置在OrmTable的实现类的成员属性之上,用来指定这个字段为非空字段
@PrimaryKey
此注解配置在OrmTable的实现类的成员属性之上,用来指定这个字段为表的主键
@Id
此注解配置在OrmTable的实现类的成员属性之上,作用类似于@PrimaryKey,并
在它的基础上指定了该字段名为”_id“,相当于@PrimaryKey+@Column("_id")
@Unique
此注解配置在OrmTable的实现类的成员属性之上,表示这个字段的值在这张表中从不重复
@Default
此注解配置在OrmTable的实现类的成员属性之上,通过它可以给字段指定默认值
CRUD操作
插入数据
DaoFactory.getDao(Account::class.java).insert(Account(generateAccKey(),
"D"+generateAccKey(), "P"+generateAccKey()))
insert不仅可以被用来插入单条数据,也可以插入一个List数据
删除数据
val selectOne = DaoFactory.getDao(Account::class.java)
.selectOne(QueryBuilder.create().orderBy(OrmTable.INDEX_ID))
if (selectOne != null) {
DaoFactory.getDao(Account::class.java).delete(selectOne)
}
更新数据
DaoFactory.getDao(Account::class.java).update(Account("这个是key",
"D"+generateAccKey(), "P"+generateAccKey()))
查询数据
Condition
selection:where子句,不带where,可以带”?“占位符
selectionArgs:”?“占位符的所有值
WhereBuilder
where子句的构建类,通过WhereBuilder.create ()创建实例
public WhereBuilder addWhereEqualTo(String column, Object value) {
return append(null, column + EQUAL_HOLDER, value);
}
可以通过调用addWhereEqualTo添加key=value条件。
QueryBuilder
支持where、orderBy、limit、groupBy等
查询记录数
val count = DaoFactory.getDao(Account::class.java).selectCount()
通过selectCount查询符合查询条件的记录条数。
其他注意事项
复杂数据类型字段映射
@Convert(converter = StringListConverter.class, columnType = String.class)
@Column("acc_child_values")
private List<String> accChildValues;
使用@Convert注解可以保存复杂的数据类型,例如ArrayList,一般将复杂数据类型转成格式化后的字符串类型保存到数据库,读取数据的时候进行自动解码操作。
converter类型转换器可以自行定义,columnType为你保存到数据库的实际数据类型。
表结构升级
@Override
public boolean isUpgradeRecreated() {
return false;
}
只需要在配置中将数据库版本提升1,即可自动进行表结构的升级。在OrmTable的实现类重写isUpgradeRecreated()来确定表升级后是否要清空之前保存的数据,如果return true,则在表升级后将数据清空。
事务操作
Transaction.execute(Account::class.java) {
val selectOne = it.selectOne(QueryBuilder.create().orderBy(OrmTable.INDEX_ID))
if (selectOne != null) {
it.delete(selectOne)
}
}
使用Transaction.execute()可以在代码块中执行事务操作,it指代的是OrmDao<Account>。
以上就是Android数据缓存框架内置ORM功能使用教程的详细内容,更多关于Android数据缓存框架ORM的资料请关注编程学习网其它相关文章!
本文标题为:Android数据缓存框架内置ORM功能使用教程
- 最好用的ios数据恢复软件:PhoneRescue for Mac 2023-09-14
- 详解flutter engine 那些没被释放的东西 2022-12-04
- iOS 对当前webView进行截屏的方法 2023-03-01
- Android实现监听音量的变化 2023-03-30
- Android MaterialButton使用实例详解(告别shape、selector) 2023-06-16
- Flutter实现底部和顶部导航栏 2022-08-31
- Android studio实现动态背景页面 2023-05-23
- Android实现轮询的三种方式 2023-02-17
- SurfaceView播放视频发送弹幕并实现滚动歌词 2023-01-02
- 作为iOS开发,这道面试题你能答出来,说明你基础很OK! 2023-09-14