import com.alibaba.druid.util.StringUtils; //导入依赖的package包/类
public void updateTableVerHistoryNotice(Connection conn, long tableId) {
try {
PreparedStatement ps = conn.prepareStatement("select id, ver_id, ver_change_history from t_data_tables where id = ?");
ps.setLong(1, tableId);
ResultSet oldResultSet = ps.executeQuery();
if (oldResultSet.next()) {
/**
* 两个都为空时,更新为新版本
* 只有历史为空时,更新为当前版本+新版本
* 两个都有值,更新为当前历史+新版本
*/
String verChangeHistory = (String) oldResultSet.getObject("ver_change_history");
String verId = (String) oldResultSet.getObject("ver_id");
if (StringUtils.isEmpty(verChangeHistory)) {
if (StringUtils.isEmpty(verId)) {
// 两个都为空,不做处理,连标记也不更新,直接返回
logger.info("Ignore to set ver_change_history while ver_id is null");
return;
} else {
// 历史为空,当前版本不为空,赋值为当前版本
verChangeHistory = verId;
logger.info("Set ver_change_history = ver_id");
}
} else {
if (StringUtils.isEmpty(verId)) {
// 历史不为空,当前版本却为空,不合逻辑,历史不变
logger.warn("An error occurred while updating verChangeHistory. Ver_change_history is not empty, but ver_id is empty. Set ver_change_history unchanged while still show notice");
return;
} else {
// 两个都不为空,直接将当前版本添加进来
verChangeHistory = verChangeHistory + "," + verId;
logger.info("Set ver_change_history += ver_id");
}
}
ps = conn.prepareStatement("update t_data_tables set ver_change_history = ? , ver_change_notice_flg = 1 where id = ?");
ps.setString(1, verChangeHistory);
ps.setLong(2, tableId);
ps.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
logger.error("updateTableVerHistoryNotice failed,error message:{}", e.getMessage());
}
}