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>

使用场景

字段非常多,而且重复的字段也很多

posted on 2024-01-27 11:28  wucanqin  阅读(47)  评论(0编辑  收藏  举报

导航