mybatis 中 foreach collection的两种用法

博客给出了针对list和map结构传参的代码,涉及controller、service、serviceImpl、mapper.java和mapper.xml等部分,还提供了参考链接https://blog.youkuaiyun.com/qq_24084925/article/details/53790287。

针对list 和map结构的传参

 

代码如下

controller

 //测试传入参数为list结构 mybatis
    @RequestMapping(value = "/demo/getMemberByListId", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
    @ResponseBody
    public List<Member> getMemberByList()
            throws BizException {
        List<Integer> ids = new ArrayList<>();
        ids.add(1);ids.add(2);
        List<Member> r = new ArrayList<Member>();
        r = memberService.getMemberByListId(ids);
        return r;

    }
  //测试传入参数为map结构 mybatis
    @RequestMapping(value = "/demo/getMemberByMapId", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
    @ResponseBody
    public List<Member> getMemberByMapId()
            throws BizException {
        List ids = new ArrayList();
        ids.add(1);
        ids.add(2);
        Map params = new HashMap();
        params.put("ids", ids);
        List<Member> r = new ArrayList<Member>();
        r = memberService.getMemberByMapId(params);
        return r;

    }

service

  List<Member> getMemberByListId(List<Integer> ids);

    List<Member> getMemberByMapId(Map params);

serviceImpl

    @Override
    public List<Member> getMemberByListId(List<Integer> ids) {
        return   this.memberMapper.getMemberByListId(ids);
    }

    @Override
    public List<Member> getMemberByMapId(Map params) {
        return  this.memberMapper.getMemberByMapId(params);
    }

mapper.java

   List<Member> getMemberByListId(@Param("ids")List<Integer> ids);

    List<Member> getMemberByMapId(Map params);

mapper.xml

	<resultMap id="BaseResultMap" type="com.fomoney.chaosfomoney.dal.entity.Member">
		<id column="uid" property="uid" jdbcType="BIGINT" />
		<result column="employee_id" property="employeeId" jdbcType="CHAR" />
		<result column="gender" property="gender" jdbcType="BIT" />
		<result column="nickname" property="nickname" jdbcType="VARCHAR" />
		<result column="uname" property="uname" jdbcType="VARCHAR" />
		<result column="passwd" property="passwd" jdbcType="VARCHAR" />
		<result column="email" property="email" jdbcType="VARCHAR" />
		<result column="portrait" property="portrait" jdbcType="VARCHAR" />
		<result column="big_portrait" property="bigPortrait" jdbcType="VARCHAR" />
		<result column="phone" property="phone" jdbcType="CHAR" />
		<result column="reg_time" property="regTime" jdbcType="INTEGER" />
		<result column="login_num" property="loginNum" jdbcType="INTEGER" />
		<result column="last_login" property="lastLogin" jdbcType="INTEGER" />
		<result column="last_ip" property="lastIp" jdbcType="VARCHAR" />
		<result column="is_supper" property="isSupper" jdbcType="TINYINT" />
		<result column="timeline" property="timeline" jdbcType="TIMESTAMP" />
		<result column="union_id" property="unionId" jdbcType="VARCHAR" />
	</resultMap>
	<select id="getMemberByListId" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" /> 
		from member where uid in  
		<foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
	</select>
	
	<select id="getMemberByMapId" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" /> 
		from member where uid in  
		<foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
	</select>

参考:https://blog.youkuaiyun.com/qq_24084925/article/details/53790287

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值