功能

可定义需重复使用的SQL片段。在其他语句中使用include引入

示例

  • 可以传入变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <sql id="tableColumns">
    ${table}.id, ${table}.username
    </sql>
    <select id="selectUser" resultType="User">
    select
    <include refid="tableColumns">
    <property name="table" value="user"/>
    </include>
    from user
    where username=#{username}
    </select>
  • 也可以嵌套引用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <sql id="sometable">
    ${prefix}Table
    </sql>
    <sql id="someinclude">
    from
    <include refid="${include_target}"/>
    </sql>
    <select id="select" resultType="map">
    select
    field1, field2, field3
    <include refid="someinclude">
    <property name="prefix" value="Some"/>
    <property name="include_target" value="sometable"/>
    </include>
    </select>