AI智能
改变未来

mybaits 树状结构

设计数据库时
书籍类目储存格式
id name parent_id
1 机电的书 0
2 机械一班的书 1
3 机械一班2012年的书 2
4 机械二班 1

简化名称后

id name parent_id
1 机电的书 0
2 机械一班 1
3 2012年 2
4 机械二班 1

要求 读取机电的书类目 可以获取所有子类目
即读取 机电的书 可以得到 结构

机电的书[
机械一班[
2012年
]
机械二班[]
]

读取 机械一班 可以得到

机械一班[
2012年
]
Mapper层

<resultMap id=\"BookTypeResultMap\" type=\"com.wxpro.wxproject.bean.BookTypeBean\"><result column=\"id\" property=\"id\" jdbcType=\"INTEGER\" /><result column=\"name\" property=\"name\" jdbcType=\"VARCHAR\" /><result column=\"parent_id\" property=\"parent_id\" jdbcType=\"INTEGER\" /><collection column=\"id\"property=\"children\"javaType=\"java.util.List\"ofType=\"com.wxpro.wxproject.bean.BookTypeBean\"select=\"getChildrenById\"/></resultMap><select id=\"getType\" parameterType=\"int\" resultMap=\"BookTypeResultMap\">SELECT * FROM typeinfo WHERE id = #{typeId}</select><select id=\"getChildrenById\" parameterType=\"int\" resultMap=\"BookTypeResultMap\">SELECT * FROM typeinfo WHERE parent_id = #{id}</select><select id=\"getAllType\" resultMap=\"BookTypeResultMap\">SELECT * FROM typeinfo</select>

resultMap 是 返回值的类型定义,其中collection返回children即子类目的
collection会调用

select=\"getChildrenById\"

这里面的方法即

<select id=\"getChildrenById\" parameterType=\"int\" resultMap=\"BookTypeResultMap\">

SELECT * FROM typeinfo WHERE parent_id = #{id}

</select>

**参考资料

https://blog.csdn.net/FANTASY522272820/article/details/70053449**

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » mybaits 树状结构