Skip to content

xml + 动态query

此功能需要1.8.1版本或之后才有

xml + 动态query,可支持多个query参数

动态query 有那些sql组件

组件描述
queryScript整个查询 sql
selectScript查询中的 select sql (不包含SELECT 关键字)
fromScript查询中的 from sql (不包含FROM 关键字)
whereScript查询中的 where sql (不包含WHERE 关键字)
orderByScript查询中的 order by sql
groupByScript查询中的 group by sql
havingScript查询中的 group by having sql

如何用

xml
<!-- 单个参数时,使用这个 -->
<select id="selectCustomSql">
    select ${selectScript} from ${fromScript} <where>${whereScript}</where>
</select>

OR

xml
<!-- 指定参数名(@Param("QUERY"))时,使用这个;参数名QUERY可以是其他的名字 -->
<select id="selectCustomSql">
    select ${QUERY.selectScript} from ${QUERY.fromScript} <where>${QUERY.whereScript}</where>
</select>

mapper 使用

java
List<SysRole> selectCustomSql(Query query);
OR
List<SysRole> selectCustomSql(@Param("QUERY") Query query);

使用代码

java
List<SysRole> list = sysRoleMapper.selectCustomSql(Query.create().select(SysRole.class).from(SysRole.class).in(SysRole::getId, 1, 2));