mybatis 递归查询

mybatis 递归查询

现有一个表的数据如下:

IDPIDNAME
a0第一组
a_1a第一组第一个
a_2a第一组第二个
b0第二组
b-1b第二组第一个
<mapper namespace="com.boseidong.cfzxzspzx.mapper.BusinessMapper">
    <resultMap id="getSelf" type="com.entity.TreeNode">
        <id column="id" property="idTree"/>
        <result column="pid" property="pidTree"/>
        <result column="name" property="nameTree"/>
        <collection  property="children" ofType="com.entity.TreeNode" select="getTreeList" column="id">
        </collection>
    </resultMap>
    <select id="getBusinessById" resultMap="getSelf">
        select id,pid,name from tree_data pid = #{pid}
    </select>
</mapper>

这样是实现逻辑其实是,就是for循环向下查询

select id,pid,name from tree_data pid = '0'
select id,pid,name from tree_data pid = 'a'
select id,pid,name from tree_data pid = 'a-1'
select id,pid,name from tree_data pid = 'a-2'
select id,pid,name from tree_data pid = 'b'
select id,pid,name from tree_data pid = 'b-1'

查询出来的数据

[
	{
		"id":"a",
		"pid":"0",
		"name":"第一组",
		"children":[
			{"id":"a-1","pid":"a","name","第一组第一个"},
			{"id":"a-2","pid":"a","name","第一组第二个"}
		]
	},
	{
		"id":"b",
		"pid":"0",
		"name":"第二组",
		"children":[
			{"id":"b-1","pid":"b","name","第二组第一个"}
		]
	}

]
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值