Пример #1
0
  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;
  }