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

相关推荐
葫芦和十三10 小时前
图解 MongoDB 21|选举与 failover:Primary 是怎么选出来的
后端·mongodb·agent
GetcharZp11 小时前
26k Star 开源内网穿透神器 NetBird,一分钟实现全球设备互联!
后端
考虑考虑11 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯12 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
lizhongxuan14 小时前
多Agent之间的区别
后端
杨充16 小时前
1.面向对象设计思想
后端
IT_陈寒17 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
systemPro17 小时前
2.6亿条设备数据,历史查询从超时到50ms,我做了什么
后端
要阿尔卑斯吗17 小时前
提示词优化启示:为什么“按顺序输出“比“关键度评分“更有效
后端
她的男孩18 小时前
后台接口加密别只会 HTTPS,ForgeAdmin 的 RSA + SM4/AES 源码拆解
后端·面试·开源