【发布时间】:2014-03-30 23:40:05
【问题描述】:
我发现 ORM lite 是一个适用于 SQlite 和 Android 的轻量级 ORM 框架。
我的问题是:
加入 ORM 不会让应用程序变得沉重吗?
我正在从 Java 的角度思考,我知道使用框架会使应用程序更加繁重。
谁能帮我解决我的疑惑?
【问题讨论】:
标签: java android sqlite orm ormlite
我发现 ORM lite 是一个适用于 SQlite 和 Android 的轻量级 ORM 框架。
我的问题是:
加入 ORM 不会让应用程序变得沉重吗?
我正在从 Java 的角度思考,我知道使用框架会使应用程序更加繁重。
谁能帮我解决我的疑惑?
【问题讨论】:
标签: java android sqlite orm ormlite
@Stephen 的回答很棒,但我想我会添加自己的。全面披露:我是 ORMLite 的作者。
加入 ORM 不会让应用程序变得繁重吗?
我认为答案很大程度上取决于您的申请。它确实使应用程序更加沉重。问题是成本/收益是否适合您的情况。如果应用程序对大量实体执行大量关系 IO,那么收益会很高。如果应用程序很大,那么额外的字节/类可能不会显着增加它。但是,如果大小增加太多或关系代码很小,那么好处可能太少并且不会超过大小代码。
此外,如果应用程序正在执行大量数据库 IO,并且由于 ORM 库可能会增加 GC 带宽,它可能会遇到性能问题。那么你可能不得不忍受自己动手做 SQL 工作。
【讨论】:
加入 ORM 不会让应用程序变得繁重吗?
这个不能客观回答。
首先,“轻”和“重”是什么意思?
假设我们正在讨论应用程序的某种度量:
但这只是告诉我们更轻和更重的含义。 “轻”和“重”呢?这些措施是否有客观价值,我们可以说“轻”或“重”?
不……没有。
但要回到更轻/更重的状态。我们可以说使用 ORM 会使应用程序变得更重吗?
在大多数衡量标准上,是(可能),但在一项重要衡量标准中,答案显然是否定的。也就是说,当我们使用 ORM 时,与使用 JDBC、SQL 和 RDBM 实现相同的功能相比,我们希望程序员编写的(各种形式的)代码更少。
您没有问的另一个问题是应用程序更轻或更重是否重要。我想说,这真的取决于应用程序、平台和开发项目的资源和时间线。
例如,如果我有一组具有挑战性的要求和紧迫的期限,那么我可能会使用 ORM无论 ORM 是否使用更多的内存、CPU、数据库带宽等... 因为在开发方面比较轻,这意味着我的项目可以按时完成。
总结:
【讨论】: