Class ConnectionFactory

  • Direct Known Subclasses:
    ConnectionFactoryImpl

    public abstract class ConnectionFactory
    extends java.lang.Object
    Handles protocol-specific connection setup.
    Author:
    Oliver Jowett (oliver@opencloud.com)
    • Constructor Detail

      • ConnectionFactory

        public ConnectionFactory()
    • Method Detail

      • openConnection

        public static QueryExecutor openConnection​(HostSpec[] hostSpecs,
                                                   java.lang.String user,
                                                   java.lang.String database,
                                                   java.util.Properties info)
                                            throws java.sql.SQLException

        Establishes and initializes a new connection.

        If the "protocolVersion" property is specified, only that protocol version is tried. Otherwise, all protocols are tried in order, falling back to older protocols as necessary.

        Currently, protocol versions 3 (7.4+) is supported.

        Parameters:
        hostSpecs - at least one host and port to connect to; multiple elements for round-robin failover
        user - the username to authenticate with; may not be null.
        database - the database on the server to connect to; may not be null.
        info - extra properties controlling the connection; notably, "password" if present supplies the password to authenticate with.
        Returns:
        the new, initialized, connection
        Throws:
        java.sql.SQLException - if the connection could not be established.
      • openConnectionImpl

        public abstract QueryExecutor openConnectionImpl​(HostSpec[] hostSpecs,
                                                         java.lang.String user,
                                                         java.lang.String database,
                                                         java.util.Properties info)
                                                  throws java.sql.SQLException
        Implementation of openConnection(org.postgresql.util.HostSpec[], java.lang.String, java.lang.String, java.util.Properties) for a particular protocol version. Implemented by subclasses of ConnectionFactory.
        Parameters:
        hostSpecs - at least one host and port to connect to; multiple elements for round-robin failover
        user - the username to authenticate with; may not be null.
        database - the database on the server to connect to; may not be null.
        info - extra properties controlling the connection; notably, "password" if present supplies the password to authenticate with.
        Returns:
        the new, initialized, connection, or null if this protocol version is not supported by the server.
        Throws:
        java.sql.SQLException - if the connection could not be established for a reason other than protocol version incompatibility.
      • closeStream

        protected void closeStream​(PGStream newStream)
        Safely close the given stream.
        Parameters:
        newStream - The stream to close.