jdbc的批量插入

2022-07-16 04:06:16 字數 3236 閱讀 3242

public

static

string gendata(connection dbconn,basevc basevc,string tablename,string rpdt,rprjrtj_pl jrtjpar,string sql)

else

if("1".equals(zhlx))

else

if("2".equals(zhlx))

else

if("3".equals(zhlx)||"0".equals(zhlx)||"6".equals(zhlx)||"8".equals(zhlx)||"9".equals(zhlx)||"a".equals(zhlx))

else

if("d".equals(zhlx) ||"5".equals(zhlx))

else

if("4".equals(zhlx) || "b".equals(zhlx) ||"c".equals(zhlx))

string khrq = commonutil.null2empty(rs.getstring("khrq"));

string xhrq = commonutil.null2empty(rs.getstring("xhrq"));

string acst = commonutil.null2empty(rs.getstring("acst")); //

原賬戶狀態

//string feam = commonutil.null2empty(rs.getstring("feam"));

//1正常、2休眠、3合同限制、4司法限制狀態

string zhzt="1";

if("1".equals(acst.substring(0,1))) else

if("1".equals(acst.substring(4,5))) else

if (acst.length()==9)

} else

string aa=ca.getacct();

if("1".equals(aa))

}string isnew= commonutil.null2empty(rs.getstring("isnew"));//

**是不是修改的 **/

if(!isnew.equals(""))

}string sfktwsyh = commonutil.null2empty(rs.getstring("sfktwsyh"));

string sfktsjyh = commonutil.null2empty(rs.getstring("sfktsjyh"));

//pstmt = dbconn.preparestatement(insert.tostring());

int fnum = 1;

pstmt.setstring(fnum++,bkno);

pstmt.setstring(fnum++,rpdt);

pstmt.setstring(fnum++,zhh);

pstmt.setstring(fnum++,zhmc);

pstmt.setstring(fnum++,khnbbm);

pstmt.setstring(fnum++,khhjrjgbm);

pstmt.setstring(fnum++,khhnbjgh);

pstmt.setstring(fnum++,zhbz);

pstmt.setstring(fnum++,zhlx);

pstmt.setstring(fnum++,khrq);

pstmt.setstring(fnum++,xhrq);

pstmt.setstring(fnum++,zhzt);

pstmt.setstring(fnum++,sfktwsyh);

pstmt.setstring(fnum++,sfktsjyh);

pstmt.setstring(fnum++,acst);

pstmt.setstring(fnum++, "0");

pstmt.setstring(fnum++, "1");

pstmt.addbatch();

if(!isnew.equals(""))

}map

datamap=new

hashmap();

datamap.put("bkno",bkno);/****/

datamap.put("cjrq",rpdt);/****/

datamap.put("zhh",zhh);

datamap.put("zhmc",zhmc);

datamap.put("khnbbm",khnbbm);

datamap.put("khhjrjgbm",khhjrjgbm);

datamap.put("khhnbjgh",khhnbjgh);

datamap.put("zhbz",zhbz);

datamap.put("zhlx",zhlx);

datamap.put("khrq",khrq);

datamap.put("xhrq",xhrq);

datamap.put("zhzt",zhzt);

datamap.put("sfktwsyh",sfktwsyh);

datamap.put("sfktsjyh",sfktsjyh);

datalist.add(datamap);

}pstmt.executebatch();

long endtime1 = system.currenttimemillis(); //

獲取結束時間 測試用,生產可注釋

輸出程式執行時間 測試用,生產可注釋

pstmt.close();

rtcd=jrtjcomm.genfile(dbconn, tablename, basevc, rpdt,jrtjpar,datalist);

}catch

(exception e)

finally

catch

(exception e)

}return

rtcd;

}

測試比對不使用批量的時間,使用後是20秒以內,多數是17秒左右,沒用批量是3分鐘以上,資料是7000多條。

注意:rewritebatchedstatements=true 這個加到你的資料庫配置的url後面。

本人菜雞乙個,歡迎大佬們來吐槽和指導。

jdbc批量插入

分享牛,分享牛原創。有這樣乙個需求,文字檔案中的資料批量的插入mysql 怎麼用 jdbc 方式批量插入呢?jdbc預設提供了批量插入的方法,可能用一次就忘記了,這裡做筆記記錄一下 jdbc 批量插入吧。connection conn null try 執行 ps.executebatch conn...

JDBC批量插入資料

一.直接上源 以匯入課表資料為例 批量插入新申請 匯入預設課表 throws sqlexception catch sqlexception e int number ps.executebatch 把剩餘的資料插入 conn.commit 手動提交事務 try catch sqlexception...

JDBC批量插入資料

批量操作的方式一般有兩種 事務提交方式和批量處理 先將命令的提交方式設為false,即手動提交conn.setautocommit false 最後在所有命令執行完之後再提交事務conn.commit private string url jdbc mysql localhost 3306 test...