【发布时间】:2015-11-25 22:49:25
【问题描述】:
我想将greenDAO – Android ORM for SQLite 集成到我的项目中。我在Schema 和DaoMaster 之间有点困惑。我真的需要创建一个Schema(创建新的Module 来创建Schema),因为据我所知,DaoMaster 已经实现了用于在Sqlite 中创建表的SQLiteOpenHelper 类。请说明创建Schema以集成GreenDAO的意义。
【问题讨论】:
我想将greenDAO – Android ORM for SQLite 集成到我的项目中。我在Schema 和DaoMaster 之间有点困惑。我真的需要创建一个Schema(创建新的Module 来创建Schema),因为据我所知,DaoMaster 已经实现了用于在Sqlite 中创建表的SQLiteOpenHelper 类。请说明创建Schema以集成GreenDAO的意义。
【问题讨论】:
你必须做的每件事都像这里一样创建 DaoGenerator http://greendao-orm.com/documentation/modelling-entities/ 生成您需要的所有文件。
【讨论】:
Schema 用于添加实体并自动生成所有需要的类,例如 DaoMaster、DaoSession 以及每个实体的 Dao 和 Object。
从技术上讲,你应该可以在没有它的情况下使用 GreenDao,但这对我来说没有意义,因为 GreenDao 最好的东西之一就是自动生成。
【讨论】:
Greendao 不使用反射通过检查实体类来生成对象模型和数据库模型之间的映射。相反,greendao 通过生成实体类、dao 类等来硬编码您的映射。这就是 greendao 比其他 ORM 工具更快的原因。
但是你必须在某个地方定义你的映射,这是由模式完成的。为了使您的应用程序保持小型化,在您的应用程序之外生成类,这意味着处理任何类型的架构并从中生成某些内容的逻辑不包含在您的应用程序代码中。
正如@Jofre Mateu 所说,在技术上可以在不生成模式的情况下使用 greendao,但这根本没有意义:您会丢弃 greendao 提供的 99% 的功能,而通过自己实现这一点,您会将错误引入您的应用程序。
【讨论】: