这是我过去几天一直困扰的问题。我正在寻找关于如何处理的指导/方法。提示&建议欢迎。 所以这就是问题。数据库有一个表“组”,它有两列: group_id 在 parent_group_id .group_id是主键表中的所有条目都表示组/子组。如果从前端添加一个子组,则会使用MySQL生成的自动生成的group_id将条目插入到组表中.parent_group_id对应添加到子组的组的group_id实际上它就像group_id列的外键一样。我这里的任务是使用组表中的数据在java中生成XML。所以这就是我被困住的地方。我知道这将是一个需要编写的递归函数,但无法找到一种方法如何动态创建节点并同时从Db填充数据。最终XML需要作为json数据发送到前端。
一个组可以有n个子组,并且层次结构可以继续。例如,Vehicle是具有group_id = 1的根节点。它可以有汽车&自行车作为子组。所以,对于汽车和自行车,parent_group_id将为1,并且组ID将为2&分别为3。
P.S:这是我第一次在这里发布过去一年使用过这个网站。如果需要更多信息或是否能够理解我的问题,请告诉我。
答案 0 :(得分:1)
如果您将任务拆分为两个,那么它将更易于管理。
以下是关于在关系数据库中查询分层数据的一些有用链接,特别是在MySQL中:
What are the options for storing hierarchical data in a relational database?
http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
http://www.slideshare.net/billkarwin/models-for-hierarchical-data
http://en.wikipedia.org/wiki/Common_table_expressions#Common_table_expression
只要您对查询结果进行了正确排序,您就可以递归遍历它,逐步构建XML树。
答案 1 :(得分:1)
能够通过使用递归函数来解决它:)。使用实体类加载所有数据,然后使用递归函数迭代数据以构建树状结构。我没有尝试采用sql方式。