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