在平常业务中,二级菜单会涉及到一级排序和二级排序,这里说一下思路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>