在Android中使用ORM的效率和必要性如何

时间:2013-12-03 09:30:05

标签: android orm ormlite greendao

我想知道 在Android上使用ORM的真正必要性 。什么是“加号”,在Android上进行conding时使用ORM,我们可以获得吗? 是不是使用本机android方法足够(使用SqlLIte并编写自己的类和自己的SQL查询( ,我认为需要花费大量时间和代码行 < /强>))?

使用ORM尤其是在移动设备上有哪些好处和缺点?

3 个答案:

答案 0 :(得分:5)

ORM可以帮助您在Object级别上更多地处理和思考您的代码,而不是关于表和列。如果要维护代码的面向对象,这一点很重要。 ORM有助于将表/列空间与对象进行转换,因此您不必或至少非常低。

ORM不一定非常复杂和昂贵。如果您的需求很简单,现在有很多简单的库/框架。到目前为止,我已将OrmLite用于我的Android项目。

答案 1 :(得分:3)

使用ORM框架可以获得与使用经过良好测试的(专业)库相同的优点和缺点:

  • 您需要编写和维护的代码越少
  • 库代码不易出错
  • 库代码更有可能被优化
  • 图书馆由其他人维护
  • 你的apk可能会变得更大,因为这个库将提供比实际需要更多的功能

此外,使用ORM可以帮助您专注于您的业务逻辑,因为您不必从OO思维转换为关系数据库思维再转回。

我能想到的一个缺点是,如果你有一些非常复杂的查询自己编写查询可能会更高效,因为(取决于ORM)你可以编写一个单独的查询,其中ORM将使用多个查询(延迟加载) )。但我知道的ORM框架也提供了编写自定义查询的能力。

根据我的经验,我可以说: 我开发了一个包含大约50个表的应用程序来保存几乎所有内容所需的数据我的查询非常复杂(几个连接)。

使用ORM(greendao)节省了我几周的时间,因为必须编写和调试的代码更少。 此外,我可以专注于我的问题,而不必关心底层的表结构,这让我节省了一些时间。

此外:我自己的开发速度在java中远高于SQL。

答案 2 :(得分:2)

为什么选择ORMLite?

  • ORMLite通常用于Java应用程序,并支持许多不同类型的底层关系数据库实现。
  • 移动应用程序开发对于软件解决方案变得越来越重要,ORMLite发布了一个新的,更可靠的Android支持的API版本。

    • 在研究ORMLite之前,对Android应用程序中更高级数据库使用的支持很少。
  • 学习将ORMLite与移动应用程序开发结合使用将有助于创建更易于维护和创建的更好的移动应用程序。
  • Android中的ORMLite显示了面向对象语言的应用程序如何从使用ORDM(对象关系数据库映射)技术中受益。

    • 使用该技术时,数据传输点存在瓶颈 - 所有类结构和OO设计都需要展平并简化为构造(在SQLite的情况下)可能只有5数据类型!!

    • 数据存储问题有一个优雅的解决方案,可以补充使用OO所涉及的设计和分析,而ORMLite是一种“精简”的方式来开始学习它。

<强>优点:

  • 允许开发人员转换使用的丰富数据类型的数据    面向对象的编程语言,以降低关系    数据库类型。
  • 允许使用自定义的抽象数据类型    (ADTs)在数据库存储中。
  • 减少代码量    应用程序,因为它们不需要生成SQL语句
  • 例如,您可以将“地址”存储为VARCHAR,而不是将其存储    将其存储为具有该数据的指定格式的ADT地址    类型。让所有应用程序使用相同的Address类和 实现了连续性。

<强>缺点:

  • 与其他数据存储方法相比,性能和可伸缩性差。由于具有复杂ADT的能力,大规模应用的效率可能会降低。
  • 数据库大小也会增加,具体取决于与对象一起存储的方法数量和存储的条目数。
  • 许多具有频繁数据库读/写活动的大型应用程序无法从ORDM中获益。

详情请参阅HEREHERE