mybatis实现子母表树型列表查询

1、结果映射

xml 复制代码
<resultMap type="com.xxx.xxxVo" id="ResultMap">
    <id property="bizId" column="id"/>
    <!-- todo 其他参数-->
    <collection property=" 对应列表属性名 "  ofType="com.xxx.xxxVo"
                <!-- 搜索方法填写对应方法所在路径,只需要写在xml文件里边,不需要在mapper中声明-->
                select="com.xxx.xxxMapper.xxx"
                <!-- 传递搜索属性名,由母表id传递 -->
                column="id">
        <result property="id" column="id"/>
        <!-- todo 其他参数-->
    </collection>
</resultMap>

2、sql编写

母表

xml 复制代码
<select id="queryZjList" resultMap="ResultMap">
<!--  todo 正常编写母表查询sql  -->
</select>

子表

xml 复制代码
    <select id="queryByBizId" resultType="com.xxx.xxxVo">
    <!--  todo 正常写子表查询sql  -->
    and A.bizId = #{id}
    </select>

原理是采用n+1次查询构建树形列表,优点是使用简单,代码简单易懂,适用于一次几百数据量、非高并发项目业务。缺点不适用于大数据量、高并发场景,替代方案建议采用两次查询然后在业务代码层面进行拼接,如果数据量大则限制前端点开才展开子表

相关推荐
vx_Biye_Design15 分钟前
springboot游泳馆系统93765-计算机课程设计、毕业设计
java·javascript·spring boot·后端·python·spring·课程设计
名字还没想好☜18 分钟前
Java NIO ByteBuffer 实战:flip/clear/compact 三个绕晕人的方法与 position/limit 心智模型
java·开发语言·后端·spring·nio
专业程序开发源1 小时前
springbootLivehouse票务系统-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·pygame
PC2005_cloud1 小时前
Rust学习笔记:所有权、借用与生命周期——Rust的核心机制
前端·后端
蜗牛互联网1 小时前
语音AI开始边听边说,改变的不只是响应速度
java·人工智能·后端·语音识别
Mav1 小时前
[个人学习记录]从零构建高性能 LLM 推理网关:Go 语言 SSE 流式转发、级联取消与背压
后端
狼爷1 小时前
磁盘IO打满怎么办?我用5个真实案例,总结了这套可复用的排查方法论
后端·性能优化
小羊在睡觉2 小时前
HLS视频
linux·后端·golang
苍何2 小时前
小米版 Codex,干活有点猛啊
后端
苍何2 小时前
直播!用 AI 实时生成游戏,速来看
后端