优化以下代码if(lotNo.equals(resultLotNo)){ String deptCode = findProcessCountByLotResult.getDeptCode(); if ((deptCode.equals(Constants.VRS_CODE) && type.equals(Constants.VRS_TYPE)) || (deptCode.equals(Constants.ElectricalMeasurement_CODE) && type.equals(Constants.ElectricalMeasurement_TYPE))) { Integer currentStationNum = findProcessCountByLotResult.getProUnit(); if(currentStationNum == 0){ currentStationNum = findProcessCountByLotResult.getBackUnit(); } if(currentStationNum == 0){ break; } Integer planQuan = findProcessCountByLotResult.getPlanQuan(); String updateSql = "update lot_number set finished = '1', current_station_num = \"" + currentStationNum + "\", plan_quan = \"" + planQuan + "\", other_finished = 0 WHERE lot_no = \"" + lotNo + "\" AND type = \"" + type + "\""; PreparedStatement a = conn.prepareStatement(updateSql); a.executeUpdate(); KafkaUtils.sendMsg(msg); break; } }
时间: 2024-02-10 22:13:27 浏览: 124
可以进行以下优化:
1. 避免使用字符串拼接 SQL 语句,改为使用 PreparedStatement 来执行 SQL 语句。
2. 避免多次调用同一个方法,可以将其结果保存到变量中,然后重复使用。
3. 减少嵌套的 if 语句,可以将条件合并为一个复合条件。
4. 可以使用常量或枚举类型来替换硬编码的字符串常量。
优化后的代码如下:
```
if (lotNo.equals(resultLotNo)) {
FindProcessCountByLotResult processCount = findProcessCountByLotResult;
String deptCode = processCount.getDeptCode();
Integer currentStationNum = processCount.getProUnit();
if (currentStationNum == 0) {
currentStationNum = processCount.getBackUnit();
}
if ((deptCode.equals(Constants.VRS_CODE) && type.equals(Constants.VRS_TYPE)) ||
(deptCode.equals(Constants.ElectricalMeasurement_CODE) && type.equals(Constants.ElectricalMeasurement_TYPE))) {
Integer planQuan = processCount.getPlanQuan();
String updateSql = "update lot_number set finished = '1', current_station_num = ?, plan_quan = ?, other_finished = 0 WHERE lot_no = ? AND type = ?";
PreparedStatement ps = conn.prepareStatement(updateSql);
ps.setInt(1, currentStationNum);
ps.setInt(2, planQuan);
ps.setString(3, lotNo);
ps.setString(4, type);
ps.executeUpdate();
KafkaUtils.sendMsg(msg);
break;
}
}
```
在这个优化后的代码中,我们将 SQL 语句改为使用 PreparedStatement,使用变量保存了多次调用的方法的结果,并将条件合并为一个复合条件,使用常量或枚举类型替换了硬编码的字符串常量。
阅读全文