新建实体类
BatchModel ins=new BatchModel();
//把实体类装list里
List<BatchModel> batchModel = new ArrayList<>();
for (int i = 0; i < arr.size(); i++) {
???ArrayList<String> row = arr.get(i);
???ins.setA(subFileName);
???ins.setB(row.get(0));
???ins.setC(row.get(1));
???ins.setD(row.get(2));
???ins.setE(row.get(3));
batchModel.add(ins);
给实体类赋值
)
由于一些数据库的SQL对执行的SQL长度有限制,所以使用foreach元素的时候需要预估对象的长度
int partsize=80;//每次的数量
???????????int index=0;//第几条
???????????int iflg=0;//到几条
???????????int recordcont=batchModel.size();//获取总数量
//index<总数量 循环到需要的数量
???????????for(;index<=recordcont;index+=partsize){
??
???????????????iflg=(index+partsize)>=recordcont ? recordcont:(index+partsize);
???????????????programService.storagekufripackage(batchModel.subList(index,iflg));
???????????}
???????????if(recordcont-iflg>0){
???????????????programService.storagekufripackage(batchModel.subList(index,iflg)); //开始插入数据库
???????????}
//我用的 spring boot// 加入 @Param("param")注解
void test(@Param("param") List<BatchModel> batchModels);
//mybatis 里是sql
<insert id="test" parameterType="com.cck.model.auxiliary.test">
???insert into ods_groupstock_actual (
???filenames, rowno, typeclass,
???jan, feb, mar, apr,
???may, jun, jul, aug,
???sep, oct, nev, dec,
???total, upload_user
???)
???values
???<foreach collection="param" ?item="veh" separator=",">
???????(
???????#{veh.A},#{veh.P}, #{veh.B},
???????#{veh.C},#{veh.D}, #{veh.E}, #{veh.F},
???????#{veh.G},#{veh.H}, #{veh.I}, #{veh.J},
???????#{veh.K}, #{veh.L}, #{veh.M}, #{veh.N},
???????#{veh.O}, #{veh.Q}
???????)
???</foreach>
</insert>
mybatis 批量上传
原文地址:https://www.cnblogs.com/cjb1/p/10262259.html