コード例 #1
0
  @Override
  public int create(LinkCrawled linkCrawled) throws SQLException {
    if (linkCrawled.getLink() == null) {
      return -1;
    }

    // If the time crawled is not specified, use the current time
    if (linkCrawled.getTimeCrawled() == null || linkCrawled.getDateCrawled() == null) {
      linkCrawled.setTimeCrawled(Helper.getCurrentTime());
      linkCrawled.setDateCrawled(Helper.getCurrentDate());
    }

    Connection connection = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;

    try {
      connection = this.daoFactory.getConnection();

      final Object[] values = {
        linkCrawled.getLink(), linkCrawled.get_originalLink(),
        linkCrawled.getPriority(), linkCrawled.getDomainTableId1(),
        linkCrawled.get_downloadDuration(), linkCrawled.get_extractedTime(),
        linkCrawled.get_httpStatusCode(), linkCrawled.get_relevance(),
        linkCrawled.get_distanceFromRelevantPage(), linkCrawled.get_freshness(),
        linkCrawled.getTimeCrawled(), linkCrawled.getDateCrawled()
      };

      preparedStatement = DAOUtil.prepareStatement(connection, this.SQL_INSERT, true, values);

      preparedStatement.executeUpdate();

      // Get the generated key (id)
      resultSet = preparedStatement.getGeneratedKeys();
      int generatedKey = -1;

      if (resultSet.next()) {
        generatedKey = resultSet.getInt(1);
      }

      return generatedKey;
    } catch (final SQLException e) {
      LOG.error("Insert into link_crawled_table fails, " + e.getMessage());

      return -1;
    } finally {
      DAOUtil.close(connection, preparedStatement, resultSet);
    }
  }