数据内容如下表:
parent字段数据对应id,如:10-流行 是 1-演唱会 的子类
需要获取的data格式如下:
如上图所示,获取每个level1的数据都要带有level1所有的子类数据
实现代码:
获取类如下:
public class DmItemTypeVo implements Serializable {
//主键
private Long id;
//类型名称
private String itemType;
//分类级别;select;(1:1级,2:2级)
private String level;
//父级类型
private Long parent;
//类别别名
private String aliasName;
//页面模板类型
private String key;
//节目类型集合
private List<DmItemType> children;
//getset...
public class DmItemType implements Serializable {
//主键
private Long id;
//类型名称
private String itemType;
//分类级别;select;(1:1级,2:2级)
private String level;
//父级类型
private Long parent;
//类别别名
private String aliasName;
//页面模板类型
private String key;
//getset...
myBatis代码如下:
<select id="queryAllItemType" resultMap="DmItemTypeMap">
SELECT
d1.id as d1_id,
d1.itemType as itemType,
d1.level as level,
d1.parent as parent,
d1.aliasName as aliasName
from dm_item_type as d1 where d1.level = 1
</select>
<resultMap id="DmItemTypeMap" type="com.der.vo.DmItemTypeVo">
<id property="id" column="d1_id"/>
<result property="itemType" column="itemType"/>
<result property="level" column="level"/>
<result property="parent" column="parent"/>
<result property="aliasName" column="aliasName"/>
<collection property="children" ofType="com.kgc.pojo.DmItemType" column="d1_id" select="queryChildren"/>
</resultMap>
<select id="queryChildren" resultType="com.kgc.pojo.DmItemType">
SELECT
d2.id as id,
d2.itemType as itemType,
d2.level as level,
d2.parent as parent,
d2.aliasName as aliasName
from dm_item_type as d2 where d2.parent = #{d1_id}
</select>
如上代码所示:先获取父类id,将父类id通过collection的方式代入查询子类的sql语句
public List<DmItemTypeVo> queryAllItemType()throws Exception;
最后直接调取即可