Mybatis之高级映射collection (递归查出树形数据 )
2017-03-16 14:07
429 查看
第一步:创建树形数据Bean
public class DeptTree {
private String id;
private String name;
private List<DeptTree> childrenList;//子节点
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<DeptTree> getChildrenList() {
return childrenList;
}
public void setChildrenList(List<DeptTree> childrenList) {
this.childrenList = childrenList;
}
}
第二步:mybatis相应的sql.xml文件配置
<!-- 初始化部门树 -->
<resultMap type="com.lilosoft.cospace.sys.bean.DeptTree" id="deptTree">
<result column="DEPT_ID" property="id" javaType="java.lang.String" />
<result column="DEPT_NAME" property="name" javaType="java.lang.String" />
<collection column="DEPT_ID" property="childrenList" ofType="DeptTree" javaType="java.util.ArrayList" select="selectDeptChildrenById"/>
</resultMap>
<!-- 根据parent_id,先查出所有一级部门 -->
<select id="queryDeptTreeList" resultMap="deptTree">
select dept_id,dept_name from sys_dept where is_use='0' and parent_id= (select dept_id from sys_dept where parent_id='-1' and is_use='0')
</select>
<!-- 再递归查询出一级部门下的所有子部门 -->
<select id="selectDeptChildrenById" resultMap="deptTree" parameterType="string">
select dept_id,dept_name from sys_dept where is_use='0' and parent_id= #{DEPT_ID}
</select>
第三步:(dao和service层代码略)控制器调用
List<DeptTree> dList=deptService.queryDeptTreeList();
public class DeptTree {
private String id;
private String name;
private List<DeptTree> childrenList;//子节点
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<DeptTree> getChildrenList() {
return childrenList;
}
public void setChildrenList(List<DeptTree> childrenList) {
this.childrenList = childrenList;
}
}
第二步:mybatis相应的sql.xml文件配置
<!-- 初始化部门树 -->
<resultMap type="com.lilosoft.cospace.sys.bean.DeptTree" id="deptTree">
<result column="DEPT_ID" property="id" javaType="java.lang.String" />
<result column="DEPT_NAME" property="name" javaType="java.lang.String" />
<collection column="DEPT_ID" property="childrenList" ofType="DeptTree" javaType="java.util.ArrayList" select="selectDeptChildrenById"/>
</resultMap>
<!-- 根据parent_id,先查出所有一级部门 -->
<select id="queryDeptTreeList" resultMap="deptTree">
select dept_id,dept_name from sys_dept where is_use='0' and parent_id= (select dept_id from sys_dept where parent_id='-1' and is_use='0')
</select>
<!-- 再递归查询出一级部门下的所有子部门 -->
<select id="selectDeptChildrenById" resultMap="deptTree" parameterType="string">
select dept_id,dept_name from sys_dept where is_use='0' and parent_id= #{DEPT_ID}
</select>
第三步:(dao和service层代码略)控制器调用
List<DeptTree> dList=deptService.queryDeptTreeList();
相关文章推荐
- Mybatis之高级映射collection (递归查出树形数据之查询部门及部门下所有人员 二叉树)
- Mybatis之高级映射collection (递归查出树形数据之查询部门及部门下所有人员 单节点)
- Mybatis之高级映射collection (递归查出树形数据之查询部门及部门下所有人员 单节点)
- Mybatis之高级映射collection (递归查出树形数据 )
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- mybatis collection高级映射 一对多管理查询只能查询出一条
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection