mybatis中的sql标签能够实现字段的复用,通过占位符${xxx}能实现别名的替换
资料来源
问题
<select>
select
t1.id, t1.username, t1.password,
t2.id, t2.username, t2.password
from some_table1 t1, some_table2 t2 ....
</select>
如果字段很多一个一个写就很烦。
在sql标签中,可以使用${XXX}占位符取别名
<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>
使用场景
字段非常多,而且重复的字段也很多