结合MyBatis框架动态SQL特性实现多字段排序

摘要:

如何通过Java后端和前端参数传递方式实现多字段排序

方法一:

结合MyBatis框架,在SQL语句中实现多字段排序

方法二:

将sql语句中的判断写在Java代码中,定义一个strSql拼接字符串,将其封装在前端传递的参数(Dto对象中),将判断添加在Java代码中然后,拼接SQL语句,将其通过${}传递给MyBatis的xml文件

YourDto yourDto = new YourDto();

// 从前端请求参数中获取排序条件
String financingAmountSort = request.getParameter("financingAmountSort");
String applyDateSort = request.getParameter("applyDateSort");

StringBuilder dynamicSql = new StringBuilder("SELECT * FROM your_table ");

// 根据排序条件拼接 SQL 语句
if (financingAmountSort != null && applyDateSort != null) {
    dynamicSql.append("ORDER BY financingAmount ").append(financingAmountSort.equals("1") ? "DESC" : "ASC")
               .append(", applyDate ").append(applyDateSort.equals("1") ? "DESC" : "ASC");
} else if (financingAmountSort != null) {
    dynamicSql.append("ORDER BY financingAmount ").append(financingAmountSort.equals("1") ? "DESC" : "ASC");
} else if (applyDateSort != null) {
    dynamicSql.append("ORDER BY applyDate ").append(applyDateSort.equals("1") ? "DESC" : "ASC");
} else {
    dynamicSql.append("ORDER BY loanDate DESC");
}

yourDto.setDynamicSql(dynamicSql.toString());

List<YourResultType> result = yourMapper.selectYourData(yourDto);

方法三:

枚举类封装排序字段和排序顺序,在业务层代码中使用List<sortField>来表示多字段排序的条件,MyBatis中使用<for each>遍历,实现多字段排序

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值