根據Export模板 , 批量插入資料,資料校驗

2021-08-29 07:16:34 字數 3069 閱讀 6152

/**

* 捕獲插入每一行錯誤資料的物件

* created by zaz on 2018/10/15.

*/public class respcapitassert***portmsg implements serializable

public void setassertsmsg(capitalassertsmsg assertsmsg) */

public long getrows()

public void setrows(long rows)

public string geterrorsmsg()

public void seterrorsmsg(string errorsmsg)

public string getcapitalnomsg()

public void setcapitalnomsg(string capitalnomsg)

@override

public string tostring() ';

}} /** * h0110=檔案為空

* h0111=excel檔案大小超過15m

* h0112=excel檔案格式錯誤

* h0113=excel檔案模型錯誤

* * @param multipartfile

* @return

*/public listinsertbatchexport(multipartfile multipartfile) else else if (!filetype.tolowercase().matches(capitalassertsconstant.excel_rule)) else catch (ioexception e)

// 獲取到excel檔案中的所有行數

int rows = sheet.getphysicalnumberofrows(); //總行數

int lastrow = sheet.getlastrownum(); //最後一行數

if (rows <= 1)

if (!validateexcel(sheet.getrow(0)))

listmsgs = new arraylist<>();

for (int i = 1; i <= lastrow; i++) else}}

}if(msg.getrows()!=null)

}return msgs;}}

}/**

exp01=資產編號*

exp02=資產名稱*

exp03=資產類別*

exp04=入庫時間*

exp05=***

exp06=購入時間*

exp07=品牌*

exp08=型號

exp09=計量單位

exp10=渠道

exp11=金額

exp12=使用期限*

exp13=使用期限單位*

exp14=保修開始時間

exp15=過保時間

exp16=備註

* * 判斷excel檔案模板是否正確

* * author: zj

*/private boolean validateexcel(row row)

if (!messageutil.getmsg("exp02").equals(row.getcell(1).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp03").equals(row.getcell(2).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp04").equals(row.getcell(3).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp05").equals(row.getcell(4).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp06").equals(row.getcell(5).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp07").equals(row.getcell(6).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp08").equals(row.getcell(7).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp09").equals(row.getcell(8).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp10").equals(row.getcell(9).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp11").equals(row.getcell(10).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp12").equals(row.getcell(11).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp13").equals(row.getcell(12).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp14").equals(row.getcell(13).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp15").equals(row.getcell(14).getstringcellvalue().trim()))

if (!messageutil.getmsg("exp16").equals(row.getcell(15).getstringcellvalue().trim()))

return true;

}

Python 批量插入SQL Server 資料庫

需要將一批資料插入sql server 資料庫,經過查證可以採用批量插入的方法,遇到一些坑,特記錄一下 批量插入方法如下 sql 1 insert into f rnfl mt2 id,fymdh,ymdh,rn,unitname,comments values data 1,2020 06 10 ...

使用SqlBulkCopy批量插入 更新資料

在開發中遇到了一張表的資料因為只做了同步插入而沒有做同步更新的操作,導致了百萬資料不準確。面對大量資料需要更新,傳統的迴圈逐條插入以及拼接1000條資料插入都比較耗時,網上有博主做出了相關測試。根據以上場景,新建控制台程式。config新增資料庫連線配置,sqlhelper連線更新資料來源,sqlb...

Mybatis批量插入或更新 根據指定字段更新

mybatis批量更新運用on duplicate key update 如果記錄不存在則插入,存在則更新。那麼這個記錄是否存在根據什麼判斷?規則如下 如果你插入的記錄導致unique索引重複,則認為這條記錄存在。比如我建立表的時候設定的唯一索引為字段email,那麼如果email重複時則執行更新,...