dao接口层定义
/** 批量更新,根据map集合,map集合中包含了要增加的工资信息,还有一个list集合 */
public Integer updateSal(Map<String,Object> map);
EmpMapper.xml文件配置
更新员工工资
<update id="updateSal" parameterType="map">
update emp set sal=sal+#{sal} where empno in
<foreach collection="list" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</update>
测试方法
package test;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.abc.mybatis.domain.Emp;
import com.abc.mybatis.mapper.EmpDao;
public class TestBatchUpdate {
public static void main(String[] args) throws IOException {
// 初始化sqlSessionFactory
InputStream is=Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(is);
//初始化SqlSession
SqlSession sqlSession=sessionFactory.openSession();
EmpDao mapper=sqlSession.getMapper(com.neuedu.mybatis.mapper.EmpDao.class);
Map<String,Object> map=new HashMap<>();
List<Integer> list=new ArrayList<>();
list.add(6666);
list.add(7839);
map.put("list", list);
map.put("sal", "99");
int rows=mapper.updateSal(map);
sqlSession.commit();
System.out.println(rows);
}
}