相关业务:多级菜单、地区树、资源树等
实现原理:构建出业务相关的树对象,将数据库查询出的业务数据组装成树对象列表,最后再将树对象列表通过递归算法格式化返回树形结构数据。
核心:递归算法格式化树对象列表数据
这里树对象类型是ResourceTreeDto,若要编写公共方法可以写成泛型。
实现步骤:
以返回所有地区及地区下设备接口为例(数据库:设备表与地区表以areaId相关联):
1.构建业务相关的树对象- 资源树ResourceTreeDto。
2.dao层返回ResourceTreeDto对象列表数据类型的业务数据, sql查询返回类型为ResourceTreeDto。
为了使查询出的业务数据列表格式化成功,且保证设备出现在对应所属地区下,所有获取设备树对象列表时,树中parentId为设备表中的areaId,树中areaId可以随意对应设备表中非areaId的任意字段。
<resultMap id="ResourceDevice" type="test.dto.ResourceTreeDto">
<result column="parentId" jdbcType="VARCHAR" property="parentId" />
<result column="areaId" jdbcType="VARCHAR" property="areaId" />
<result column="areaName" jdbcType="VARCHAR" property="areaName" />
<result column="device_id" jdbcType="VARCHAR" property="deviceId" />
</resultMap>
3.service层组装业务数据(可根据业务要求组装多个),调用树形格式化方法返回树形数据。
网友评论