简单树形嵌套列表后端实现
首先定义VO(value object) 值对象
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。
/**
* @author QiuQiu&LL
* @create 2021-07-10 18:20
* @Description:
*/
@Data
public class SubjectVo implements Serializable {
private String id;
private String title;
private Integer sort;
// 存放子节点
private List<SubjectVo> children = new ArrayList<>();
}
Controller
// 展示列表数据
@ApiOperation("嵌套数据列表")
@PostMapping("/nested-list")
public R nestedList() {
List<SubjectVo> subjectVoList = subjectService.nestList();
return R.ok().data("items", subjectVoList);
}
Service
List<SubjectVo> nestList();
ServiceImpl
@Override
public List<SubjectVo> nestList() {
return baseMapper.selectNestedListByParentId("0");
}
Dao
/**
* 获取树形结构数据
* @param parentId
* @return
*/
List<SubjectVo> selectNestedListByParentId(String parentId);
<resultMap id="nestedSubject" type="com.qbb.zxjy.service.edu.entity.vo.SubjectVo">
<id property="id" column="id"/>
<result property="title" column="title"/>
<result property="sort" column="sort"/>
<collection property="children"
column="id"
select="selectNestedListByParentId"
ofType="com.qbb.zxjy.service.edu.entity.vo.SubjectVo"/>
</resultMap>
<select id="selectNestedListByParentId" resultMap="nestedSubject">
select id, sort, title from edu_subject where parent_id = #{parentId}
</select>
测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构