• sql

    sql

    这个元素可以被用来定义可重用的 SQL 代码段,这些 SQL 代码可以被包含在其他语句中。它可以(在加载的时候)被静态地设置参数。 在不同的包含语句中可以设置不同的值到参数占位符上。比如:

    1. <sql id="userColumns"> ${alias}.id,${alias}.username,${alias}.password </sql>

    这个 SQL 片段可以被包含在其他语句中,例如:

    1. <select id="selectUsers" resultType="map">
    2. select
    3. <include refid="userColumns"><property name="alias" value="t1"/></include>,
    4. <include refid="userColumns"><property name="alias" value="t2"/></include>
    5. from some_table t1
    6. cross join some_table t2
    7. </select>

    属性值也可以被用在 include 元素的 refid 属性里或 include 元素的内部语句中,例如:

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