救命..。我想使用mybatis3.2.3对多个参数进行分组,但是它并不能帮助work...please me.how --我可以得到我的answer.thanks。
这是地图绘制者。
<select id="selectByGroup" resultMap="chartMap">
select * from chart group by
<foreach collection="list" item="item" index="index" separator=",">
#{item}
</foreach>
</select> 主计长:
String dims[] = dimension.split(",");
List<String> paraList = new ArrayList<String>();
for(String s : dims){
if(!s.equals(""))
paraList.add(s);
}
List<Chart> charts = chartDao.selectByMap(paraList);相关的道方法:
public List<Chart> selectByMap(Object obj) {
List<Chart> chartList = null;
System.out.println(obj);
chartList = sqlSession.selectList("draw.selectByGroup",obj);
return chartList;
}发布于 2015-01-09 11:07:47
只需尝试将#{item}替换为${item}。
来自正式文档(http://mybatis.github.io/mybatis-3/sqlmap-xml.html):
字符串替换 默认情况下,使用#{}语法将导致MyBatis生成PreparedStatement属性,并根据PreparedStatement参数(例如?)安全地设置值。虽然这更安全、更快而且几乎总是首选的,但有时您只是想直接将未经修改的字符串注入到SQL语句中。例如,对于ORDER,您可以使用如下内容: 按${columnName}在这里订购,MyBatis不会修改或转义字符串。 注意,接受用户的输入并以这种方式将其提供给未修改的语句是不安全的。这会导致潜在的SQL注入攻击,因此您应该在这些字段中不允许用户输入,或者始终执行自己的转义和检查。
https://stackoverflow.com/questions/27832190
复制相似问题