public class Menu {
public String menuId;
public String menuName;
public String menuLevel;
public String parentId;
public List<Menu> childList = new ArrayList<Menu>();
create table menu{
menu_Id varchar(31),
menu_name varchar(31),
menu_level char(1),
parent_Id varchar(31)
}
<!--查询所有,使用resultMap返回结果集,将数据组装成树形结构 -->
<select id="findMenuAll" resultMap="menu_map">
select * from menu where menu_level='1'
</select>
<!-- 返回结果集 -->
<resultMap type="....entity.menu" id="menu_map">
<id column="menu_id" property="menuId"/>
<result column="menu_name" property="menu_name"/>
<result column="menu_level" property="menuLevel"/>
<collection property="childList" column="menu_id " ofType="....entity.menu"
select="findMenuByparentId"></collection>
</resultMap>
<!-- 根据父键查询 -->
<select id="findMenuByparentId" parameterType="String" resultMap="menu_map">
select * from menu where parent_id=#{menuId}
</select>
里面的id
标签和result
标签来建立映射关系,由property
和column
分别指定实体类属性和数据表的列名
collection: 一对多
association: 多对一