001package org.avaje.dbmigration.util;
002
003import org.slf4j.Logger;
004import org.slf4j.LoggerFactory;
005
006import java.sql.Connection;
007import java.sql.PreparedStatement;
008import java.sql.ResultSet;
009import java.sql.SQLException;
010
011/**
012 * Utility for closing raw Jdbc resources.
013 */
014public class JdbcClose {
015
016  private static final Logger logger = LoggerFactory.getLogger(JdbcClose.class);
017
018  /**
019   * Close the connection logging if an error occurs.
020   */
021  public static void close(Connection connection) {
022    try {
023      connection.close();
024    } catch (SQLException e) {
025      logger.warn("Error closing connection", e);
026    }
027  }
028
029  /**
030   * Rollback the connection logging if an error occurs.
031   */
032  public static void rollback(Connection connection) {
033    try {
034      connection.rollback();
035    } catch (SQLException e) {
036      logger.warn("Error on connection rollback", e);
037    }
038  }
039
040  public static void close(PreparedStatement query) {
041    try {
042      query.close();
043    } catch (SQLException e) {
044      logger.warn("Error closing PreparedStatement", e);
045    }
046  }
047
048  public static void close(ResultSet resultSet) {
049    try {
050      resultSet.close();
051    } catch (SQLException e) {
052      logger.warn("Error closing resultSet", e);
053    }
054  }
055}