隨筆 mybaits 提取公用的sql內容

1.將公用的內容提取出來,使用sql標籤提取,然後使用include引用

 <resultMap type="mptest.mybatistest.entity.GoodVo" id="userMap" >
        <result column="id" property="id" />
        <result column="name" property="name" />
        <collection property="orderList" ofType="mptest.mybatistest.entity.Order">
            <result column="orderId" property="orderId" />
            <result column="orderFee" property="orderFee" />
        </collection>
    </resultMap>

    <sql id="field" >
        u.id,
        u.name
    </sql>


    <select id="getGoodsList" resultMap="userMap" >
        select
       <include refid="field"></include> ,
       o.orderId,
       o.orderFee
        FROM
        user_test u left join  order_id_test  o on u.id=o.id
        where u.id = 1
    </select>

2.表在使用的時候可能起別名,有別名的情況:

 <resultMap type="mptest.mybatistest.entity.GoodVo" id="userMap" >
        <result column="id" property="id" />
        <result column="name" property="name" />
        <collection property="orderList" ofType="mptest.mybatistest.entity.Order">
            <result column="orderId" property="orderId" />
            <result column="orderFee" property="orderFee" />
        </collection>
    </resultMap>
    <sql id="field" >
        u.id,
        u.name
    </sql>

    <sql id="field1" >
       ${alias}.orderId,
       ${alias}.orderFee
    </sql>

    <select id="getGoodsList" resultMap="userMap" >
        select
       <include refid="field"></include>,
        <include refid="field1">
            <property name="alias" value="o"/>
        </include>
        FROM
        user_test u left join  order_id_test  o on u.id=o.id
        where u.id = 1
    </select>

    1)sql和include配合使用,sql標籤裏和其他增刪改查標籤一樣支持動態sql標籤

    2)include標籤可以通過property子標籤給sql標籤裏傳值,sql標籤裏用 ${} 獲取

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章