springboot树形结构代码
时间: 2023-07-01 13:29:15 浏览: 84
下面是一个简单的 Spring Boot 树形结构代码示例:
1. 首先,我们需要创建一个节点类,用于表示树中的每个节点:
```java
public class TreeNode {
private Integer id;
private String name;
private Integer parentId;
private List<TreeNode> children;
// getters and setters
}
```
2. 接下来,我们需要创建一个服务类,用于从数据库中获取树形结构数据:
```java
@Service
public class TreeService {
@Autowired
private JdbcTemplate jdbcTemplate;
public List<TreeNode> getTree() {
String sql = "SELECT id, name, parent_id FROM tree";
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql);
Map<Integer, TreeNode> nodeMap = new HashMap<>();
for (Map<String, Object> row : rows) {
Integer id = (Integer) row.get("id");
String name = (String) row.get("name");
Integer parentId = (Integer) row.get("parent_id");
TreeNode node = new TreeNode();
node.setId(id);
node.setName(name);
node.setParentId(parentId);
node.setChildren(new ArrayList<>());
nodeMap.put(id, node);
}
List<TreeNode> rootNodes = new ArrayList<>();
for (TreeNode node : nodeMap.values()) {
if (node.getParentId() == null) {
rootNodes.add(node);
} else {
TreeNode parent = nodeMap.get(node.getParentId());
parent.getChildren().add(node);
}
}
return rootNodes;
}
}
```
3. 最后,我们需要创建一个控制器类,用于返回树形结构数据:
```java
@RestController
public class TreeController {
@Autowired
private TreeService treeService;
@GetMapping("/tree")
public List<TreeNode> getTree() {
return treeService.getTree();
}
}
```
这个控制器类中的 `getTree()` 方法将会返回一个树形结构数据,可以在前端中使用 JavaScript 或其他前端框架来渲染这个树形结构。
阅读全文