mybatis循环foreach使用
一. 批量插入数据
dao接口(Mapper)
public interface IVacationDao extends ISqlDao{ //每次插入一个的方法 public void CreateVacation(Vacation vct) throws Exception; //批量插入的方法 public void CreateVacationList(List<Vacation> vctList) throws Exception; }
对应的mapper:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 此处namespace需要指定dao接口 --> <mapper namespace="com.xreb.vacation.dao.IVacationDao"> <insert id="CreateVacationList" > insert into t_vacation values
<!-- 注意 insert into t_vacation values 不要写在循环里,其次 #{vacation.em_id} 的方式,其中vacation 是item的值--> <foreach collection="list" item="vacation" index="index" separator=","> (#{vacation.em_id},#{vacation.dp_id},#{vacation.v_year},#{vacation.v_count},#{vacation.ulogin_id},#{vacation.last_update}) </foreach> </insert> </mapper>
二. 拼接in
dao接口:
//使用注解方式
public List<RestDemoEntity> list(@Param("ids") List<Integer> ids);
mapper配置:
<select id="list" resultMap="restDemoEntity" > SELECT ID, NAME FROM tb_mdmt_num WHERE ID in
<!-- 此处 collection的值和注解的参数名一样-->
<foreach collection="ids" separator="," close=")" open="(" item="id"> #{id} </foreach> </select>
持续学习、持续收获才能带来持续的满足和快乐!
浙公网安备 33010602011771号