【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>
相關文章
相關標籤/搜索