/NewsManagerJSF/src/main/java/com/epam/news2/dao/pool/Connector.java

https://bitbucket.org/BahdanSiamionau/news-manager-2 · Java · 53 lines · 42 code · 11 blank · 0 comment · 4 complexity · 5d625eef80eee0de49030ff61aef94a9 MD5 · raw file

  1. package com.epam.news2.dao.pool;
  2. import java.sql.Connection;
  3. import java.sql.PreparedStatement;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;
  6. import org.apache.log4j.Logger;
  7. import com.epam.news2.exception.NewsManagerException;
  8. public final class Connector implements AutoCloseable {
  9. private static final String EXCEPTION_NULL_CONN = "Connection is null";
  10. private static final Logger logger = Logger.getLogger(Connector.class);
  11. private ConnectorPool pool;
  12. private Connection connection;
  13. public Connector(ConnectorPool pool, Connection connection) {
  14. this.pool = pool;
  15. this.connection = connection;
  16. }
  17. public Statement getStatement() throws NewsManagerException {
  18. try {
  19. if (connection != null) {
  20. return connection.createStatement();
  21. }
  22. throw new NewsManagerException(EXCEPTION_NULL_CONN);
  23. } catch (SQLException ex) {
  24. logger.error(ex.getMessage());
  25. throw new NewsManagerException(ex);
  26. }
  27. }
  28. public PreparedStatement getPreparedStatement(String query) throws NewsManagerException {
  29. try {
  30. if (connection != null) {
  31. return connection.prepareStatement(query);
  32. }
  33. throw new NewsManagerException(EXCEPTION_NULL_CONN);
  34. } catch (SQLException ex) {
  35. logger.error(ex.getMessage());
  36. throw new NewsManagerException(ex);
  37. }
  38. }
  39. public void close() {
  40. pool.release(this);
  41. }
  42. }