一:自关联,如菜单表的自己跟自己关联
实体类:
public class Menu {
private String menuid;
private String menuname;
private String url;
private String icon;
}
包装类:
public class MenuVo {
private String menuid;
private String menuname;
private String url;
private String icon;
private List<Menu> menus;//下级菜单
}
映射文件: 其中menuid是父id,pid是子id
<resultMap type="com.ninemax.ssm.po.MenuVo" id="menusMap">
<id column="menuid" property="menuid" jdbcType="VARCHAR" /><result column="menuname" property="menuname" jdbcType="VARCHAR" />
<result column="url" property="url" jdbcType="VARCHAR" />
<result column="icon" property="icon" jdbcType="VARCHAR" />
<collection property="menus" column="menuid" select="getMenus" />
</resultMap>
<select id="queryMenus" parameterType="string" resultMap="menusMap">
select * from menu where menuid = #{menuid,jdbcType=VARCHAR}
</select>
<select id="getMenus" parameterType="string" resultMap="menusMap">
select * from menu where pid = #{menuid}
</select>
二:一对一关联