Cupboard 是一个适用于 Android 的持久化存储方案,简单而且容易与现有代码集成。
更准确的说, Cupboard 只是一个存取对象方案。为了保简洁,它并不会去维护对象之间的关系,所以也并不是一个真正的ORM。
设计理念
设计 Cupboard 是因为现有的持久化框架并不能满足实际的需求,我们真正想要的是:
- 非侵入的:不必要继承某个特殊的Activity,model 也不必要去实现某个特殊的接口,甚至都不必要实现 DAO 模式
- 通用的选择:在整个应用中都可以使用所定义的 model 对象,而并不局限于数据库
- 完美适应 Android 自有的类,比如 Cursor 以及 ContentValues,这样,可以在任何时候回退到 Android 框架本身的实现
官网
官方文档的非官方翻译
参见 官方文档的非官方翻译 https://xesam.github.io/cupboard-cn/
使用
引入 Cupboard 依赖,然后静态导入 cupboard():
build.gradle:
1 | compile 'nl.qbusict:cupboard:(insert latest version)' |
java 类:
1 | import static nl.qbusict.cupboard.CupboardFactory.cupboard; |
在代码中可以这么调用:
1 | public long storeBook(SQLiteDatabase database, Book book) { |
上面的代码将一个 Book entity 存入数据库中,然后返回记录的 id, 就这么简单!
更多参见 Cupboard 非官方翻译