mybatis sql分页无效

一、背景

根据和前端约定字段,自定义排序字段

SELECT * FROM user ORDER BY #{field}

        DESC

LIMIT #{pageStart}, #{pageSize}

根据传入属性field字段排序

一直查询结果是根据id正序

mybatis打印出来sql:

==>  Preparing: SELECT * FROM user ORDER BY ? DESC LIMIT ?, ?
==> Parameters: id(String), 0(Integer), 10(Integer)

自己把sql拼接好去navicat上执行结果正常

二、发现问题

#防止注入会把字段加上"id",执行排序就忽略了

三、解决办法

使用$注入,但会有SQL注入问题,自己做判断,根据情况定课避免;

获取去掉这个自定义属性排序,排序字段写死;

或者使用mybatis-plus封装的QueryWrapper;

数据多且复杂可聚合到es

你可能感兴趣的:(数据库相关,sql,mybatis)