public static Integer insert(
      Connection conn,
      Integer networkId,
      NetworkIntegerSettingEnum settingEnum,
      Integer settingValue)
      throws SQLException {

    conn = start(conn);

    String sql =
        "insert into `network_integer_settings` ("
            + "`network_id`, "
            + "`setting_id`, "
            + "`setting_value` "
            + ") values (?, ?, ?);";

    PreparedStatement ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
    ps.setInt(1, networkId);
    ps.setInt(2, settingEnum.getId());
    ps.setInt(3, settingValue);
    ps.execute();

    Integer generatedId = DatabaseUtils.getFirstGeneratedKey(ps.getGeneratedKeys());

    end(conn, ps, null);
    return generatedId;
  }
  public static NetworkIntegerSetting getByNetworkIdAndSettingEnum(
      Connection conn, Integer networkId, NetworkIntegerSettingEnum setting) throws SQLException {
    conn = start(conn);

    String sql =
        "select * "
            + "from `network_integer_settings` "
            + "where `network_id` = ? "
            + "and `setting_id` = ? "
            + "limit 1;";

    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setInt(1, networkId);
    ps.setInt(2, setting.getId());
    ResultSet rs = ps.executeQuery();

    NetworkIntegerSetting out = null;

    while (rs.next()) out = loadPrimitives(rs);

    end(conn, ps, rs);
    return out;
  }
  public static void updateByNetworkIdAndSettingEnum(
      Connection conn,
      Integer networkId,
      NetworkIntegerSettingEnum settingEnum,
      Integer settingValue)
      throws SQLException {

    conn = start(conn);

    String sql =
        "update `network_integer_settings` "
            + "set `setting_value` = ? "
            + "where `network_id` = ? "
            + "and `setting_id` = ? "
            + "limit 1;";

    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setInt(1, settingValue);
    ps.setInt(2, networkId);
    ps.setInt(3, settingEnum.getId());
    ps.execute();

    end(conn, ps, null);
  }