目录
需求01: 根据不同类型 查询不同的订单名,
1. 书写订单 类型转换方法
2. 使用方式:
3.. 构建条件构造器并进行查询, 传递查询参数
4. Mapper 写法
5. 最核心位置 xml位置
6. sql执行效果:
需求01: 根据不同类型 查询不同的订单名,
条件也是不同的, 需要复用sql语句
看看如何实现(第一种方式), 借助 mybatisPlus 构造
1. 书写订单 类型转换方法
private String orderTypeChangeName(Integer orderType) {
switch (orderType) {
case 1:
return "order_one";
case 2:
return "order_two";
case 3:
return "order_three";
default:
throw newRuntimeExcetion("不支持的订单类型");
}
}
2. 使用方式:
String sqlName = orderTypeChangeName(orderType);
3.. 构建条件构造器并进行查询, 传递查询参数
baseMapper.selectTest(sqlName,
new QueryWrapper<Test01>()
.in(sqlName, orderList)
.isNotNull(sqlName)
.ne(sqlName, "")
.groupBy(sqlName)
);
4. Mapper 写法
List<Test01> countByOrder(@Param("sqlName") String sqlName,@Param(Constants.WRAPPER) QueryWrapper<Test> queryWrapper);
5. 最核心位置 xml位置
<select id="*"
resultType="*">
SELECT
${sqlName} AS orderNum,
count( id ) AS counts
FROM
*
${ew.customSqlSegment}
</select>