mybatis 查詢樹形結構


1. 簡介

對於樹結構數據,通過mybatis的 mapper的xml文件實現遞歸查詢.
一般每條記錄都有一個類似parentId的字段

2. Mapper接口

@Mapper
public interface XxxpMapper extends BaseMapper<XxxPo> {

    /**
     * 獲取完整樹
     */
    List<XxxPo> getTree(@Param("parentId") String parentId);
}

3. xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.XXXMapper">

    <resultMap type="com.po.XxxPo" id="xxxTreeResultMap" extends="drawGroupResultMap">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="parentId" column="parent_id"/>
        <collection property="childList" ofType="drawGroupTreeResultMap"
                    select="getTree"
                    <!-- 當前記錄的ID為子記錄的父ID -->
                    column="{projectId=project_id,parentId=id}">
        </collection>
    </resultMap>


    <select id="getTree" resultMap="drawGroupTreeResultMap">
        SELECT * FROM table_name WHERE
        AND project_id = #{projectId}
        <if test="parentId != null and parentId != ''">
            AND parent_id = #{parentId}
        </if>
        <if test="parentId == null or parentId == ''">
            AND (parent_id IS NULL OR parent_id ='')
        </if>
    </select>

</mapper>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM