public static boolean updateLumberLog(LumberLog lumberLog) { Logger logger = Logger.getLogger("dao"); boolean status = false; StringBuilder updateLumberLog = new StringBuilder("update lumberlog set small_diameter=") .append(lumberLog.getSmallRadius()); updateLumberLog.append(",big_diameter=").append(lumberLog.getBigRadius()); updateLumberLog.append(",length=").append(lumberLog.getLength()); updateLumberLog.append(",reallength=").append(lumberLog.getRealLength()); updateLumberLog.append(",volume=").append(lumberLog.getVolume()); updateLumberLog.append(",realvolume=").append(lumberLog.getRealVolume()); updateLumberLog.append(",lumbertype=").append(lumberLog.getLumberType()); updateLumberLog.append(",lumberclass=").append(lumberLog.getLumberClass()); updateLumberLog.append(",margin=").append(lumberLog.getMarginPercent()); updateLumberLog.append(",MarginVolume=").append(lumberLog.getMarginVolume()); updateLumberLog.append(",RealMarginVolume=").append(lumberLog.getMarginRealVolume()); updateLumberLog.append(",stack=").append(lumberLog.getStack().getId()); updateLumberLog.append(" where id=").append(lumberLog.getId()); StringBuilder insertLumberLogDiameter = new StringBuilder( "insert into lumberlog_diameter(lumberlog_id, diameter, metric) values(?, ?, 1)"); Connection con = null; Statement stm = null; PreparedStatement pstm; try { con = DataAccess.getInstance().getDatabaseConnection(); con.setAutoCommit(false); stm = con.createStatement(); logger.info(updateLumberLog.toString()); stm.executeUpdate(updateLumberLog.toString()); stm.executeUpdate("delete from lumberlog_diameter where lumberlog_id=" + lumberLog.getId()); if (lumberLog.getMediumRadius() != null && !lumberLog.getMediumRadius().isEmpty()) { pstm = con.prepareStatement(insertLumberLogDiameter.toString()); for (Double radius : lumberLog.getMediumRadius()) { pstm.setLong(1, lumberLog.getId()); pstm.setDouble(2, radius); pstm.executeUpdate(); } } status = true; } catch (Exception e) { e.printStackTrace(); logger.warning(e.getMessage()); logger.log(Level.INFO, "Error", e); status = false; try { con.rollback(); } catch (Exception ex) { } } finally { if (stm != null) try { stm.close(); } catch (Exception e) { } if (con != null) { try { con.setAutoCommit(true); } catch (Exception e) { } } } return status; }