1、查询指定ID下所有的子节点(从顶层到底层--多层结构)
id为0 查询所有节点
import java.util.List;
/**
*/
public class TreeVO {
private Integer id;
private String name;
private Integer pid;
private List<TreeVO> list;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPid() {
return pid;
}
public void setPid(Integer pid) {
this.pid = pid;
}
public List<TreeVO> getList() {
return list;
}
public void setList(List<TreeVO> list) {
this.list = list;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.manage.bussiness.mapper.TreeVOMapper">
<resultMap id="treeVoMap" type="com.manage.bussiness.domain.TreeVO">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="pid" property="pid" jdbcType="INTEGER" />
<collection property="list" ofType="com.manage.bussiness.domain.TreeVO"
column="id" select="findTreeByPid"/>
</resultMap>
<!--级联查询父菜单-->
<select id="selectAllTree" resultMap="treeVoMap" >
select * from t_tree where pid = 0
</select>
<!--级联查询子菜单-->
<select id="findTreeByPid" resultMap="treeVoMap" >
select * from t_tree where pid = #{id}
</select>
</mapper>
数据库数据结构如下:
查询出来后,json格式化:
2、根据指定ID 查询其所有父级(从底层到顶层--多层结构)
import java.util.List;
/**
*/
public class TreeVO {
private Integer id;
private String name;
private Integer pid;
private List<TreeVO> list;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPid() {
return pid;
}
public void setPid(Integer pid) {
this.pid = pid;
}
public List<TreeVO> getList() {
return list;
}
public void setList(List<TreeVO> list) {
this.list = list;
}
}
@Mapper
public interface TreeVOMapper {
List<TreeVO> selectAllTree() ;
List<TreeVO> selectAllParentTreeBySubId(Integer id) ;
}
http://localhost:8080/tree2?id=12