【MyBatis】二级菜单分别排序

在平常业务中,二级菜单会涉及到一级排序和二级排序,这里说一下思路java

1. 在数据库设计时,设置排序字段web

2. 设置父类code字段,用于查询菜单分级数据库

3. 添加字段的设置,父类排序字段和子类排序字段须要分别添加排序号,父类为一组,子类为一组,好比添加的是父类,就查询父类的最大编号,进行添加json

数据库设计mybatis

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

查询思路数据库设计

1. 经过mybatis二级查询,先查询父类的编号,能够进行父类排序,再经过父类编号查询子类信息,进行子类编号ide

SQL设计

<resultMap id="findItemProperty" type="com.alibaba.fastjson.JSONObject">
        <result column="property_name" property="propertyName"/>
        <collection property="children" ofType="com.alibaba.fastjson.JSONObject" column="property_code" javaType="List" select="findItemPropertyChild">
        </collection>
</resultMap>
<select id="findItemProperty" resultMap="findItemProperty" parameterType="Map">
    SELECT
        ip.property_name,
        ip.property_code
    FROM
        item_property ip
    WHERE
        ip.category_code =  #{categoryCode}
        AND ip.property_parent_code = '0'
        AND ip.website_code = #{websiteCode}
    ORDER BY
        ip.display_sequence ASC
</select>

<resultMap id="findItemPropertyChildMap" type="com.alibaba.fastjson.JSONObject">
    <result column="property_code" property="propertyCode"/>
    <result column="property_option" property="accessPath"/>
    <result column="pn" property="propertyName"/>
</resultMap>
<select id="findItemPropertyChild" resultMap="findItemPropertyChildMap" parameterType="String">
    SELECT
        property_code,
        property_option,
        property_name pn
    FROM
        item_property
    WHERE
        property_parent_code = #{propertyCode}
    ORDER BY
        display_sequence ASC
</select>
相关文章
相关标签/搜索