[英]How to efficiently load objects with lists from sql-databases
假设我有以下课程:
class Example {
List<ObjectA> objectsOfA;
List<ObjectB> objectsOfB;
List<ObjectC> objectsOfC;
....
}
我通常会有这些表:
Example
(Id,其他属性) ObjectA
(某些属性,ExampleId) ObjectB
(某些属性,ExampleId) ObjectC
(某些属性,ExampleId) 如果我想还原Example
-object,我想我有两个选择:
Example
并为每个示例执行对ObjectA
, ObjectB
, ObjectC
列表的单个请求。 如果Example
-entries的数量很少,则option2可能是最好的。 但是对于Example
每个单个条目,我需要执行x个以上的请求,其中x是类中表的数量。
否则,将所有内容都放在一个联接中就需要我自己重新组织所有数据-创建哈希表,遍历数据和内容,这通常是代码中的大量工作。
我还可以通过选项2进行延迟加载。
我还有其他选择吗? 我错过了什么? (我当然知道ORM,但是我决定在Android上不使用它们)
如果我正确理解,您的问题是,从主表和相关表中加载数据哪种方法更好:
除非您对带宽有极大的限制,否则我会说选项1很简单,我会同意的。 让数据库进行连接更容易,而在Java中,只需将记录映射到对象即可。
如果节省数据库的带宽很重要,那么选项2会更好,因为每条数据将只获取一次而不会重复,因为选项中的JOIN结果实际上是非规范化数据。
无论如何,我建议您使用Occam的剃刀 :最简单的解决方案通常是最好的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.