mybatis 批量将list数据插入到数据库

Posted Firm陈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis 批量将list数据插入到数据库相关的知识,希望对你有一定的参考价值。

随着业务需要,有时我们需要将数据批量添加到数据库,mybatis提供了将list集合循环添加到数据库的方法。具体实现代码如下:

1.mapper层中创建 insertForeach(List < Fund > list) 方法,返回值是批量添加的数据条数

	package com.center.manager.mapper;
	import java.util.List;
	import org.apache.ibatis.annotations.Mapper;
	import com.center.manager.entity.Fund;
	@Mapper
	public interface FundMapper {
	
		int insertForeach(List<Fund> list);
	}

2.Fund类代码如下:

	package com.center.manager.entity;
	import java.util.Date;

	public class Fund {

	    private  String id;
	
		private String fundName;      
	
		private String fundCode;      
	
		private String dateX;         
	
		private String dataY;         

	    private String remarks; 
	
		private String createBy; 
	
		private Date createDate; 
	
		private String updateBy; 
	
		private Date updateDate; 
	
		private String delFlag; 

	    public String getId() {
			return id;
		}

		public void setId(String id) {
			this.id = id;
		}
	
		public String getFundName() {
			return fundName;
		}

		public void setFundName(String fundName) {
			this.fundName = fundName;
		}

		public String getFundCode() {
			return fundCode;
		}

		public void setFundCode(String fundCode) {
			this.fundCode = fundCode;
		}

		public String getDateX() {
			return dateX;
		}

		public void setDateX(String dateX) {
			this.dateX = dateX;
		}

		public String getDataY() {
			return dataY;
		}

		public void setDataY(String dataY) {
			this.dataY = dataY;
		}

	    public String getRemarks() {
			return remarks;
		}

		public void setRemarks(String remarks) {
			this.remarks = remarks;
		}

		public String getCreateBy() {
			return createBy;
		}

		public void setCreateBy(String createBy) {
			this.createBy = createBy;
		}

		public Date getCreateDate() {
			return createDate;
		}

		public void setCreateDate(Date createDate) {
			this.createDate = createDate;
		}

		public String getUpdateBy() {
			return updateBy;
		}

		public void setUpdateBy(String updateBy) {
			this.updateBy = updateBy;
		}

		public Date getUpdateDate() {
			return updateDate;
		}

		public void setUpdateDate(Date updateDate) {
			this.updateDate = updateDate;
		}

		public String getDelFlag() {
			return delFlag;
		}
		
		public void setDelFlag(String delFlag) {
			this.delFlag = delFlag;
		}
	}

3.mybatis的xml文件中的insert语句如下:

<?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" >
<mapper namespace="com.center.manager.mapper.FundMapper">

	<insert id="insertForeach" parameterType="java.util.List" useGeneratedKeys="false">
    			insert into fund
    			( id,fund_name,fund_code,date_x,data_y,create_by,create_date,update_by,update_date,remarks,del_flag)
    			values
    			<foreach collection="list" item="item" index="index" separator=",">
    				(
    					#{item.id},
    					#{item.fundName},
    					#{item.fundCode},
    					#{item.dateX},
    					#{item.dataY},
    					#{item.createBy},
    					#{item.createDate},
    					#{item.updateBy},
    					#{item.updateDate},
    					#{item.remarks},
    					#{item.delFlag}
    				)
    		     </foreach>		
    </insert>    
</mapper>

以上是关于mybatis 批量将list数据插入到数据库的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis+Oracle进行数据的批量插入和更新

mybatis批量插入数据

Mybatis 批量插入多条数据,使用场景:导入多条数据

原创:关于使用Mybatis插件自动生成造成批量插入转换成list集合的问题以及解决方案(转载请注明出处,谢谢!)

mybatis批量插入批量删除

mybatis mysql 批量插入