Java 如何有效地从sql数据库加载具有列表的对象
假设我有以下课程:Java 如何有效地从sql数据库加载具有列表的对象,java,mysql,sql,relational-database,Java,Mysql,Sql,Relational Database,假设我有以下课程: class Example { List<ObjectA> objectsOfA; List<ObjectB> objectsOfB; List<ObjectC> objectsOfC; .... } 类示例{ 清单2; 清单b; 列出SOFC的目标; .... } 我通常会有以下几张桌子: 示例(Id、其他属性) ObjectA(一些属性,例如id) ObjectB(一些属性,例如id) ObjectC(一些
class Example {
List<ObjectA> objectsOfA;
List<ObjectB> objectsOfB;
List<ObjectC> objectsOfC;
....
}
类示例{
清单2;
清单b;
列出SOFC的目标;
....
}
我通常会有以下几张桌子:
(Id、其他属性)示例
(一些属性,例如id)ObjectA
(一些属性,例如id)ObjectB
(一些属性,例如id)ObjectC
示例
-对象,我想我有两个选项:
示例
,并为每个示例对对象A
、对象B
、对象C
列表执行单个请求示例
-条目的数量较低,则选项2可能是最好的。但是对于示例中的每个条目
,我需要再执行x个请求,其中x是类中的表数
否则,将所有内容都包含在一个连接中需要我自己重新组织所有数据——创建哈希映射、迭代数据和其他内容,这通常需要大量的代码工作
我还可以使用选项2延迟加载
我还有其他选择吗?我错过什么了吗?(当然我知道ORM,但我决定不在Android上使用它们)如果我理解正确,您的问题是,以下哪种方式更适合从主表和相关表加载数据:
在任何情况下,我建议遵循以下原则:最简单的解决方案往往是最好的。嘿,我已经看到了你的答案,并且觉得它非常合理。我会看看是否有任何其他建议进来,并将检查您的答案是否正确,否则。现在,我倾向于使用三个查询,而不是一个或数百个。例如,每个对象一个,每个对象本身一个。将它们放在一个映射中,迭代示例,查看b和c中的哪些对象匹配,以将它们添加到列表中。你认为这种方法怎么样?这与我建议的选项2相对应。是的,我倾向于认为可能更容易和更有效地实施