在平常業務中,二級菜單會涉及到一級排序和二級排序,這裏說一下思路java
1. 在數據庫設計時,設置排序字段web
2. 設置父類code字段,用於查詢菜單分級數據庫
3. 添加字段的設置,父類排序字段和子類排序字段須要分別添加排序號,父類爲一組,子類爲一組,好比添加的是父類,就查詢父類的最大編號,進行添加json
數據庫設計mybatis
查詢思路數據庫設計
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>