2017_11_28 学习mybatis多参数传入,以及#,$的区别

来源:互联网 发布:mysql 高并发解决方案 编辑:程序博客网 时间:2024/06/14 10:00

mybatis的resultType只能接收一个参数,但是当前台数据想要传多个参数时,resultType就不能使用了,这时应该使用resultMap,resultMap作为参数map,封装多个条件,这里我就记录了自认为比较复杂的一种情况,如果传递的参数是一个list集合,在mybatis框架遍历时,collection必须指定为list,如果传递的参数时一个array数组,collection必须指定为array,第三种,如果传递的参数即有普通属性,例如date,还有数组或集合,那么在foreach遍历中collection的值就为改数组或集合的引用对象,例如List<String> list = new ArrayList<String>();list就是应该写在collection中的值。


在mybatis中,需要注意以下几点:

1,你所传递的参数是否可以直接拿来拼接,如果格式不对,应做好处理再拼接。

2,mybatis中#相当于对数据 加上双引号,$相当于直接显示数据(这是大坑!!!牢记




<select id="queryByIndustryCategoryList" resultType="com.csht.vehicle.model.OutageVehiclePojo"
parameterType="java.util.Map">
SELECT c.tran as tran
,SUM(c.cont) as count
,c.dateday as dateday 
FROM t_car c WHERE
dateday = 
<if test="dateday!=null and dateday!=''">
${dateday}
</if>
GROUP BY c.tran,c.dateday HAVING c.tran IN
<foreach item="item" index="index" collection="array" open="(" separator="," close=")">
            '${item}'
        </foreach>
</select>


随笔:springboot框架的入口是Application.java类,必须放在根目录下。