Class ConnectionFactory

  • Direct Known Subclasses:
    ConnectionFactoryImpl

    public abstract class ConnectionFactory
    extends java.lang.Object
    Handles protocol-specific connection setup.
    • Field Detail

      • LOGGER

        private static final java.util.logging.Logger LOGGER
    • Constructor Detail

      • ConnectionFactory

        public ConnectionFactory()
    • Method Detail

      • openConnection

        public static QueryExecutor openConnection​(HostSpec[] hostSpecs,
                                                   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
        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.util.Properties info)
                                                  throws java.sql.SQLException
        Implementation of openConnection(org.postgresql.util.HostSpec[], 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
        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.