如何从任何java结构中的SQL表中一次性检索分层项以进行比较?

如何从任何java结构中的SQL表中一次性检索分层项以进行比较?,java,mysql,structure,parent-child,hierarchy,Java,Mysql,Structure,Parent Child,Hierarchy,我想从SQL表中读取分层方式的项。e、 g.我的表具有父子关系。 以下是我的表格结构: id name parentId 1 abc null 2 xyz 1 3 lmn 1 4 qwe null 5 asd 4 所以我想一次加载所有的项目,我该怎么做呢? 我试过HashMap,但感觉很复杂。。。。 提前感谢…您可以通过一个SQL查询检索整个层次结构,但查询取决于数据库

我想从SQL表中读取分层方式的项。e、 g.我的表具有父子关系。 以下是我的表格结构:

id    name    parentId

1     abc      null

2     xyz        1

3     lmn        1

4     qwe       null

5     asd        4
所以我想一次加载所有的项目,我该怎么做呢? 我试过HashMap,但感觉很复杂。。。。
提前感谢…

您可以通过一个SQL查询检索整个层次结构,但查询取决于数据库系统-例如,Oracle支持层次结构查询的“连接方式”查询。MySQL不直接支持这一点,但在中介绍了一些非常好的方法。我建议你试试这些。基本的方法是创建一个函数来模仿connectby

首先,从您的问题来看,不清楚您是否需要SQL方面或java数据结构方面的帮助

我假设两者都需要,即您需要从数据库获取数据,然后填充到适当的java数据结构中

所以没有直接的方法。您的数据主要是树结构,所以主要需要关注树的java数据结构。下面是您需要采取的步骤

1) 首先为树结构创建java类结构。请参阅下面的链接

2) 如果您最终需要java对象,那么您不需要从sql方面获得太多东西。所以您可以执行简单的选择查询来获取数据


3) 现在,您需要有一个助手方法来使用步骤1中的类结构为您的数据准备树。如果您做得更好,可以使用SQL数据使树类结构自构造。

您应该阅读有关自联接的内容