package com.goodworkalan.addendum.connector; import static com.goodworkalan.addendum.Addendum.SQL_CLOSE; import static com.goodworkalan.addendum.Addendum.SQL_CONNECT; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import com.goodworkalan.addendum.Addendum; import com.goodworkalan.danger.Danger; /** * An implementation of a JDBC connection factory that creates connections using * the JDBC <code>java.sql.DriverManager</code>. * * @author Alan Gutierrez */ public class DriverManagerConnector implements Connector { /** The url of the JDBC connection. */ private final String url; /** The user name for the JDBC connection. */ private final String user; /** The password for the JDBC connection. */ private final String password; /** * Create a new driver manager connector that using the given connect string * and identity to connect to a JDBC data source through the JDBC * <code>java.sql.DriverManager</code>. * * @param url * The connect string. * @param user * The user name. * @param password * The password. */ public DriverManagerConnector(String url, String user, String password) { this.url = url; this.user = user; this.password = password; } /** * Open a connection to a JDBC data source. * * @return A JDBC connection. */ public Connection open() { try { return DriverManager.getConnection(url, user, password); } catch (SQLException e) { throw new Danger(Addendum.class, SQL_CONNECT, e); } } /** * Close a JDBC connection created by this connector. * * @param connection * A JDBC connection created by this connector. */ public void close(Connection connection) { try { connection.close(); } catch (SQLException e) { throw new Danger(Addendum.class, SQL_CLOSE, e); } } }