67,513
社区成员
发帖
与我相关
我的任务
分享
String insertDataSql = "insert into tdpointdata(id,subjectid,tempcode,chromosomecode,chromosomeposition,ref,alts,alt,pfirst,afnormal,callnormal,afdisease,calldisease) values (?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement pst = null;
//省略jdbc连接,try catch ,关闭自动提交等无关代码
pst = conn.prepareStatement(insertDataSql);
for (int i = 0; i < pointDataList.size(); i++) {
pst.setLong(1, dataId);
pst.setLong(2, pointDataList.get(i).getSubjectId());
pst.setString(3, pointDataList.get(i).getTempCode());
pst.setString(4, pointDataList.get(i).getChromosomeCode());
pst.setLong(5, pointDataList.get(i).getChromosomePosition());
pst.setString(6, pointDataList.get(i).getRef());
pst.setString(7, pointDataList.get(i).getAlts());
pst.setString(8, pointDataList.get(i).getAlt());
pst.setDouble(9, pointDataList.get(i).getPfirst());
pst.setFloat(10, pointDataList.get(i).getAfnormal());
pst.setInt(11, pointDataList.get(i).getCallnormal());
pst.setFloat(12, pointDataList.get(i).getAfdisease());
pst.setInt(13, pointDataList.get(i).getCalldisease());
//第一次可以执行addBatch
pst.addBatch();
List<TestDataPointConclusionBean> pointConclusionList = pointDataList.get(i).getPointDataConclusions();
if (CollectionUtils.isEmpty(pointConclusionList)) {
dataId++;
continue;
}
for (int j = 0; j < pointConclusionList.size(); j++) {
//这里抛出异常
pst.addBatch(insertConSql + "(" + conclusionId + maintenanceSql + dataId + "," + pointConclusionList.get(j).toString() + ")");
conclusionId++;
}
dataId++;
pst.executeBatch();
conn.commit();
}
insert into tdpointdataconclusion (id,createdate,creator,datastatus,lastmodifier,lastmodifydate,testdatapointid,extrasamplecode,type,conclusion) values (883640,Tue Dec 20 00:00:00 CST 2016,2,1,0,null,3605,'GT_47',1,1)
PreparedStatement pst1 = null;
PreparedStatement pst2 = null;
try {
pst1 = conn.prepareStatement(insertDataSql);
pst2 = conn.prepareStatement(insertConSql);
for (int i = 0; i < pointDataList.size(); i++) {
pst1.setLong(1, dataId);
//.......
pst1.addBatch();
List<TestDataPointConclusionBean> pointConclusionList = pointDataList.get(i).getPointDataConclusions();
if (CollectionUtils.isEmpty(pointConclusionList)) {
dataId++;
continue;
}
for (int j = 0; j < pointConclusionList.size(); j++) {
if (!pointConclusionList.get(j).isValid()) {
continue;
}
pst2.setLong(1, conclusionId);
//......
conclusionId++;
}
dataId++;
//每2000条数据提交一次
if ((i > 0 && i % 10 == 0) || i == pointDataList.size() - 1) {
pst2.executeBatch();
conn.commit();
}
}
pst1.executeBatch();
conn.commit();
} catch (Exception e) {
throw new RayseException(TmmsErrCode.TMMS_DATA_GENE_IMPORT_FAIL);
} finally {
try {
if (pst1 != null) {
pst1.close();
}
if (pst2 != null) {
pst2.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
}
}