storio
storio
是github上的开源项目,它用来操作SQLiteDatabase
和 ContentResolver
的操作进行封装,提供更简单更强大的api.我们项目最近从xutils3
转换为StorIOSQLite
,说说对它的体验和它是如何使用RxJava
进行封装.
storio是通过预先代码生成进行实体类的赋值
通过SQLiteTypeMapping
提供实体的三种Resolver
:
- PutResolver
- GetResolver
- DeleteResolver
也就是分别对应我们在进行API操作时
- 将实体转换为数据库数据(InsertQuery,UpdateQuery…)
- 将数据库数据(Cursor)装换成实体对象
- 如何执行删除操作
常规的Resolver
只要我在实体类中使用它的Annotation Processor
便会自动生成。
什么时候需要自定义呢?
复杂实体对象的时候(连表查询),因为storio
是不关心具体实体类的,它只关心如何将实体和数据库操作建立起关系
比如文档中的UserWithTweetsGetResolver.java