【发布时间】:2019-01-02 03:46:11
【问题描述】:
我正在尝试在 Spring MVC 4 中使用 order by 子句进行 SQL 查询。但它不起作用。我正在使用 MapSQLParameterSource 类来定义 sql 参数。
MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue("lowerLimit", lowerLimit);
params.addValue("upperLimit", upperLimit);
params.addValue("filter", filter.trim()+"%");
params.addValue("order", order);
String sql = "SELECT * FROM tbl_Subject WHERE subjectName LIKE :filter ORDER BY :order limit :lowerLimit, :upperLimit";
它实际上不起作用。不排序任何列。当我尝试硬编码时,它可以作为方面正常工作。
String sql = "SELECT * FROM tbl_Subject WHERE subjectName LIKE :filter ORDER BY subjectId DESC limit :lowerLimit, :upperLimit";
如何使用 MapSqlParameterSource 按子句查询排序。
【问题讨论】:
-
` String sql = "SELECT * FROM tbl_Subject WHERE subjectName LIKE :filter ORDER BY "+order+" limit :lowerLimit, :upperLimit";` 用这个代替
addValue -
这种方式以后不会造成SQL注入吗?因为我允许将其直接放在我的查询中?
-
在添加到 sql 变量之前删除不需要的字符。
标签: java sql spring spring-mvc spring-data-jpa