在使用MyBatis解析xml进行排序的时候,遇见排序无效的问题!
-
#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的值是id,则解析成的sql为order by “id”。
-
$将传入的数据直接显示生成在sql中。如:order by ${user_id},如果传入的值是111,那么解析成sql时的值为order by 111, 如果传入的值是id,则解析成的sql为order by id。
使用${}
Mapper.xml
<select id="getSales" resultType="Map" parameterType="String">
select a.id,b.productName,a.price,a.quantity,a.totalPrice,a.saleDate,c.realName
from sale a inner join product b
on a.productId=b.id
inner join users c
on a.userId=c.id
order by ${orderBy} desc
</select>
Dao.java
String类型需要添加注解@Param
List<Sale> getSales(@Param("orderBy") String orderBy);