ibatis中要增加一个排序功能
按照惯性思维增加了这样的代码
<isNotNull prepend="," property="orderColumn">
order by #orderColumn#
</isNotNull>
运行起来不符合预期
检查了生成了原始语句,发现组装成的SQL变成了
order by 'name'
在orderColumn参数前后加上了引号,所以会不成功
最终解决方法如下
<isNotNull prepend="," property="orderColumn">
order by $orderColumn$
</isNotNull>
然后显式的在DO中对orderColumn属性值进行筛选,避免引入注入漏洞,即
public void setOrderColumn(String orderColumn){
if("id".equals("orderColumn") || ...){
this.orderColumn = orderBy;
}else{
this.orderColumn = null;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。