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

相关推荐
深蓝AI4 分钟前
Python 3.13 的 Queue.shutdown:异步消费者终于能正常收工了
后端
武子康42 分钟前
MultiNet6 空闲崩溃:`EXCVADDR=0x8` 后又出现 `CORRUPT HEAP`
人工智能·后端·agent
武子康2 小时前
MultiNet7 每轮都 clean,ESP32-P4 内存为什么还在掉?
人工智能·后端·agent
超级架构师2 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
陈随易3 小时前
AI 运维服务器,安全又可靠的方法
前端·后端·程序员
IT_陈寒4 小时前
JavaScript的this坑人实录,这次我真的记下来了
前端·人工智能·后端
starzy19905 小时前
Scala类和对象:从构造器到样例类的完整指南
开发语言·后端·scala
梦影_5 小时前
MySQL进阶教程(五)—— SQL调优(下)
android·大数据·数据库·后端·sql·mysql·database
考虑考虑5 小时前
mariadb数据库
数据库·后端·mariadb
明月_清风6 小时前
用自然语言操控真机:Google Artemis 移动端 AI Agent 上手与实践
人工智能·后端