public class RpCubridinsert
{
--- 생략 ---
List<RpCllctVO> cllctVOs = new ArrayList<>();
// 수집한 데이터 조회
cllctVOs = dbUtil.getCllctSelectList(mode, sDate, eDate, runType);
// 수집데이터 갯수 만큼 반복
for(RpCllctVO cllctVO: cllctVOs)
{
dbUtilCu.insertCllctCubridData(cllctVO);
}
--- 생략 ---
}
public int insertCllctCubridData(RpCllctVO cllctVO) throws SQLException, UnsupportedEncodingException
{
DBManagerCu dbm = DBManagerCu.getInstanceCu();
Connection conn = dbm.getConnection();
PreparedStatement pstmt = null;
int ret = 0;
String sqlText;
sqlText = " INSERT INTO TB_INSEQCMS_BBS_DATA "
+ " ( "
+ " BBS_ID "
+ " ,SEQ "
+ " -- 등등 생략 -- "
+ " ) "
+ " VALUES "
+ " ( "
+ " 'news-media' "
+ " ,? "
+ " -- 등등 생략 -- "
+ ") ";
try
{
pstmt = conn.prepareStatement(sqlText);
pstmt.setInt(1, cllctVO.getBitnaraSeq());
-- 등등 생략 --
ret = pstmt.executeUpdate();
}
finally
{
dbm.freeConnection(conn, pstmt);
}
return ret;
}
public class RpCubridinsert
{
--- 생략 ---
List<RpCllctVO> cllctVOs = new ArrayList<>();
// 수집한 데이터 조회
cllctVOs = dbUtil.getCllctSelectList(mode, sDate, eDate, runType);
// cllctVOs 수집 List 데이터를 가지고
// insert 모듈 호출
dbUtilCu.insertCllctCubridData(cllctVOs);
--- 생략 ---
}
// 수집한 데이터 조회
cllctVOs = dbUtil.getCllctSelectList(mode, sDate, eDate, runType);
dbUtilCu.cllctBatchData(cllctVOs);
public int insertCllctCubridData(RpCllctVO cllctVO) throws SQLException, UnsupportedEncodingException
{
DBManagerCu dbm = DBManagerCu.getInstanceCu();
Connection conn = dbm.getConnection();
PreparedStatement pstmt = null;
int ret = 0;
String sqlText;
sqlText = " INSERT INTO TB_INSEQCMS_BBS_DATA "
+ " ( "
+ " BBS_ID "
+ " ,SEQ "
+ " -- 등등 생략 -- "
+ " ) "
+ " VALUES "
+ " ( "
+ " 'news-media' "
+ " ,? "
+ " -- 등등 생략 -- "
+ ") ";
pstmt = conn.prepareStatement(sqlText);
for(RpCllctVO cllctVO: cllctVOs)
{
try
{
pstmt.setInt(1, cllctVO.getBitnaraSeq());
-- 등등 생략 --
// Batch Job으로 모은다.
pstmt.addBatch();
}
catch(Exception e)
{
e.printStackTrace();
}
}
// Batch Job으로 모은걸 한번에 실행한다.
pstmt.executeBatch();
try {
pstmt.close();
psFileTmt.close();
psMariaTmt.close();
} catch (Exception e2) {e2.printStackTrace();}
try {
connCu.close();
conn.close();
} catch (Exception e2) {e2.printStackTrace();}
}
10만건 이상 List에 올렸다가 한번에 실행하면 오류가 날수도있다.
if( (count % 100000) == 0){
System.out.println(count + "건 처리중");
pstmt.executeBatch();
}
for문안에 addBatch() 를 하고 카운터를 늘린다음 10만건이 되면 바로 Batch()를 실행해야한다.