Mybatis使用foreach执行mysql批量插入

 时间:2024-10-13 16:09:26

1、在dao中定义一个批量插入的方法:package com.gwolf.dao;import java.util.List;import java.util.Map;import org.apache.ibatis.annotations.MapKey;import org.apache.ibatis.annotations.Param;import com.gwolf.bean.Employee;public interface EmployeeMapper { public void addEmps(@Param("emps") List<Employee> emps); }

Mybatis使用foreach执行mysql批量插入

2、在xml文件中定义sql语句:我们需要使用foreach遍历集合的内容。<i艘绒庳焰nsert id="addEmps媪青怍牙" parameterType="employee" > insert into tbl_emp(emp_name,email,gender) values <foreach collection="emps" item="emp" separator=","> (#{emp.empName},#{emp.email},#{emp.gender}) </foreach>

Mybatis使用foreach执行mysql批量插入

3、在单元测试中定义一个批量插入的单元测试方法:package com.gwolf;import java.io.InputStream;import java.util.ArrayList;import java.util.List;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 org.junit.Test;import com.gwolf.bean.Employee;import com.gwolf.dao.EmployeeMapper;public class AppTest { @Test public void testBatchSave() throws Exception { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); try { EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class); List<Employee> emps = new ArrayList<Employee>(); emps.add(new Employee(null, "cc", "[email protected]", "M")); emps.add(new Employee(null, "ce", "[email protected]", "M")); employeeMapper.addEmps(emps);; }finally { sqlSession.close(); } } }

Mybatis使用foreach执行mysql批量插入

4、执行单元测试方法,查看sql语句打印。

Mybatis使用foreach执行mysql批量插入

5、如果需要批量保存,还可以使用foreach遍历,mysql支持values(),()语法。

Mybatis使用foreach执行mysql批量插入

6、我们还可以循环遍历插入sql:<insert id="addEmps" parameterType="employee"> <foreach collection="emps" item="emp" separator=";"> insert into tbl_emp(emp_name,email,gender) values (#{emp.empName},#{emp.email},#{emp.gender}) </foreach> </insert>

Mybatis使用foreach执行mysql批量插入
  • 如何从学渣逆袭为学霸
  • 磁控胶囊胃镜
  • 模特的完美皮肤是怎么来的
  • #萌新听我说#复旦大学邯郸校区篇
  • 金蝶云星空如何查看许可使用情况?
  • 热门搜索
    六一儿童节手抄报内容 优秀手抄报 宪法手抄报内容 安全第一手抄报 重阳节手抄报图片 小学二年级手抄报 海底世界手抄报 关于孝的手抄报 爱劳动手抄报简单漂亮 五四手抄报