StringBuffer addSql = new StringBuffer(1000);
int batchSize = 50;
int executeTime = 0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (int i=0; i<trackIds.size(); i++) {
if(i/batchSize > executeTime) {//50轮执行一次SQL(拷贝数据量太大)
String sql = addSql.substring(0, addSql.length() - 1);
baseJdbcDao.exceute(sql, null);
executeTime++;//执行次数++
}
if(i%batchSize == 0) {//50轮重新拼接SQL(防止SQL过长)
addSql = addSql.delete(0, addSql.length());
addSql.append("insert into " + DatabaseConstants.BASE + ".yk_behavior_monitor (TRACK_ID, PROGRAM_ID, " +
"BEHAVIOR_ID, ACTION_TOTAL, ACTION_COMPLETED, CREATED_BY, CREATED_DATE, LAST_UPDATED_BY, LAST_UPDATED_DATE, REMOVE_FLAG) values");
}
for (Integer behaviorId : behaviorIds) {
addSql.append("(");
addSql.append(trackIds.get(i) + ",");
addSql.append(programId + ",");
addSql.append(behaviorId + ",");
addSql.append("0,0,");
addSql.append(user.getUserId() + ",");
addSql.append("'" + sdf.format(new Date()) + "',");
addSql.append(user.getUserId() + ",");
addSql.append("'" + sdf.format(new Date()) + "',");
addSql.append("0),");
}
}
String sql = addSql.substring(0, addSql.length() - 1);
baseJdbcDao.exceute(sql, null);