sql
这个元素可以用来定义可重用的 SQL 代码片段,以便在其它语句中使用。 参数可以静态地(在加载的时候)确定下来,并且可以在不同的 include 元素中定义不同的参数值。比如:
- <sql id="userColumns"> ${alias}.id,${alias}.username,${alias}.password </sql>
这个 SQL 片段可以在其它语句中使用,例如:
- <select id="selectUsers" resultType="map">
- select
- <include refid="userColumns"><property name="alias" value="t1"/></include>,
- <include refid="userColumns"><property name="alias" value="t2"/></include>
- from some_table t1
- cross join some_table t2
- </select>
也可以在 include 元素的 refid 属性或内部语句中使用属性值,例如:
- <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>