sql

这个元素可以用来定义可重用的 SQL 代码片段,以便在其它语句中使用。 参数可以静态地(在加载的时候)确定下来,并且可以在不同的 include 元素中定义不同的参数值。比如:

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 属性或内部语句中使用属性值,例如:

1. <sql id="sometable">
2. ${prefix}Table
3. </sql>

5. <sql id="someinclude">
6. from
7. <include refid="${include_target}"/>
8. </sql>

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>