二级列表数据模型实现
#数据库:
CREATE TABLE `norms_value` (
`id` int NOT NULL,
`norms_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`norms_value` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`parent_id` int DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
#二级元素两种情况(1):需要时候插入就行,前端在使用的时候一般不需要这个二级元素
#二级元素两种情况(2)
#对应的sql:
-- 父级查询
SELECT id,norms_name,norms_value,parent_id FROM norms_value WHERE parent_id =0
-- 子级查询
SELECT id,norms_name,norms_value,parent_id as parentId FROM norms_value WHERE parent_id = #{id}
#具体的代码块实现:(在mybatis中做一下map映射,children 层在实体类中使用list接收)
#添加: @TableField(exist = false) (需要用到这个字段,但不映射待数据库字段)
#相关代码:
<resultMap type="com.example.page_demo.pojo.NormsValue" id="fatherList">
<id column="id" property="id"/>
<result column="norms_name" property="normsName"/>
<result column="norms_value" property="normsValue"/>
<collection property="children" ofType="com.example.page_demo.pojo.NormsValue" column="id"
select="childrenList"/>
</resultMap>
<select id="selectList" resultMap="fatherList">
SELECT id, norms_name, norms_value, parent_id
FROM norms_value
WHERE parent_id = 0
</select>
<select id="childrenList" resultType="com.example.page_demo.pojo.NormsValue">
SELECT id, norms_name, norms_value, parent_id as parentId
FROM norms_value
WHERE parent_id = #{id}
</select>
#效果:
#这种具体做法和上面的做法相同:
感兴趣小伙伴可以试一下哦__