总之先上一张图:
从我用到的开始弄:
include标签引用,可以复用SQL片段
sql标签中id属性对应include标签中的refid属性。通过include标签将sql片段和原sql片段进行拼接成一个完整的sql语句进行执行。
res_type_id,res_type select from pub_res_type 引用同一个xml中的sql片段 引用公用的sql片段 include标签中也可以用property标签,用以指定自定义属性。在sql标签中通过${}取出对应的属性值。<select id="queryPubResType" parameterType="com.fist.store" resultMap="PubResTypeList">
select a.storeid,
<include refid="comm.auth_param_sql3">
<property name="storeid" value="a.storeid"/>
<property name="lng" value="#{lngId}"/>
<property name="female" value="'女'"/>
</include> as res_type
from tb_pub_staffstore a
</select>
<sql id="auth_param_sql3">
<if test="storeListForRole != null and storeListForRole.size()>0">
and ${storeid} in
<foreach collection="storeListForRole" item="storeid" open="(" close=")" separator=",">
#{storeid}