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

相关推荐
Eric_见嘉2 小时前
在职前端 Agent 配置分享
前端·后端·agent
Ares-Wang2 小时前
Flask》》 Flask-OpenID 认证、 OpenID Connect (OIDC)
后端·python·flask
掘金码甲哥2 小时前
这篇优雅安装k8s集群的姿势,请务必投喂给AI智能体, 包装包活的那种!
后端
IT_陈寒3 小时前
Vue的v-for里用index当key,我被自己坑惨了
前端·人工智能·后端
invicinble4 小时前
Spring如何把bean注册到容器里
java·后端·spring
阿丰资源4 小时前
基于SpringBoot+MySQL的网上订餐系统(附源码)
spring boot·后端·mysql
希望永不加班4 小时前
SpringBoot 敏感数据脱敏(序列化层)
java·spring boot·后端·spring
希望永不加班4 小时前
SpringBoot 数据库索引优化:慢查询分析
java·数据库·spring boot·后端·spring
彩票管理中心秘书长5 小时前
MySQL数据库新建流程和字符集详细介绍
后端
geovindu5 小时前
go: Proxy Pattern
开发语言·后端·设计模式·golang·代理模式