一般公司的组织架构,省市区县。数据保存在一张表。可以利用mybatis-collection级联功能进行递归查询
<mapper namespace="com.aitutech.system.dao.CnRegionDao">
<resultMap id="BaseResultMap" type="com.aitutech.system.vo.CnRegionVo">
<id column="id" property="id" jdbcType="BIGINT" />
<result column="region_code" property="regionCode" jdbcType="VARCHAR" />
<result column="region_name" property="regionName" jdbcType="VARCHAR" />
<result column="fid" property="fid" jdbcType="BIGINT" />
<result column="region_name_en" property="regionNameEn"
jdbcType="VARCHAR" />
<result column="region_shortname_en" property="regionShortnameEn"
jdbcType="VARCHAR" />
<result column="level" property="level" jdbcType="TINYINT" />
<!-- 关联查询附件list -->
<collection property="cnRegionVos" select="selectAll"
ofType="com.aitutech.system.vo.CnRegionVo" column="{fid=id}" />
</resultMap>
<sql id="Base_Column_List">
id, region_code, region_name, fid, region_name_en,
region_shortname_en, level
</sql>
<!-- 查询省,城市,区县 -->
<select id="selectAll" parameterType="java.util.Map" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from cn_region
<choose>
<when test='fid==null or fid ==""'>
where fid = '0'
</when>
<otherwise>
where fid =#{fid}
</otherwise>
</choose>
</select>
</mapper>