Class DefaultConnector

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Connector
    Direct Known Subclasses:
    DirectConnector

    public class DefaultConnector
    extends java.lang.Object
    implements Connector

    Purpose:Use this Connector to build a java.sql.Connection in the "standard" fashion, via the DriverManager.

    See Also:
    Serialized Form
    Author:
    Big Country
    Since:
    TOPLink/Java 2.1
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.String databaseURL  
      protected java.sql.Driver driver
      cache up the instantiated Driver to speed up reconnects
      protected java.lang.Class driverClass
      cache up the driver class to speed up reconnects
      protected java.lang.String driverClassName  
      protected java.lang.String driverURLHeader  
    • Constructor Summary

      Constructors 
      Constructor Description
      DefaultConnector()
      PUBLIC: Construct a Connector with default settings The database URL will still need to be set.
      DefaultConnector​(java.lang.String driverClassName, java.lang.String driverURLHeader, java.lang.String databaseURL)
      PUBLIC: Construct a Connector with the specified settings.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clearDriverClassAndDriver()
      INTERNAL: Discard the cached driver class and driver.
      java.lang.Object clone()
      INTERNAL: Clone the connector.
      java.sql.Connection connect​(java.util.Properties properties, Session session)
      INTERNAL: Connect with the specified properties and session.
      protected java.sql.Connection directConnect​(java.util.Properties properties)
      INTERNAL: Connect directly - without using DriverManager.
      java.lang.String getConnectionDetails()
      PUBLIC: Provide the details of my connection information.
      java.lang.String getConnectionString()
      PUBLIC: Return the JDBC connection string.
      java.lang.String getDatabaseURL()
      PUBLIC: The database URL is the JDBC URL for the database server.
      java.lang.String getDriverClassName()
      PUBLIC: The driver class is the name of the Java class for the JDBC driver being used (e.g.
      java.lang.String getDriverURLHeader()
      PUBLIC: The driver URL header is the string predetermined by the JDBC driver to be part of the URL connection string, (e.g.
      protected void initialize​(java.lang.String driverClassName, java.lang.String driverURLHeader, java.lang.String databaseURL)
      INTERNAL: Initialize the connector with the specified settings.
      protected void instantiateDriver()
      INTERNAL: Instantiate the Driver.
      protected void loadDriverClass​(Session session)
      INTERNAL: Ensure that the driver has been loaded and registered with the DriverManager.
      void setDatabaseURL​(java.lang.String databaseURL)
      PUBLIC: The database URL is the JDBC URL for the database server.
      void setDriverClassName​(java.lang.String driverClassName)
      PUBLIC: The driver class is the name of the Java class for the JDBC driver being used (e.g.
      void setDriverURLHeader​(java.lang.String driverURLHeader)
      PUBLIC: The driver URL header is the string predetermined by the JDBC driver to be part of the URL connection string, (e.g.
      boolean shouldUseDriverManager​(java.util.Properties properties, Session session)
      INTERNAL: Indicates whether DriverManager should be used.
      java.lang.String toString()
      PUBLIC: Print connection string.
      void toString​(java.io.PrintWriter writer)
      INTERNAL: Print something useful on the log.
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • driverClassName

        protected java.lang.String driverClassName
      • driverURLHeader

        protected java.lang.String driverURLHeader
      • databaseURL

        protected java.lang.String databaseURL
      • driverClass

        protected java.lang.Class driverClass
        cache up the driver class to speed up reconnects
      • driver

        protected java.sql.Driver driver
        cache up the instantiated Driver to speed up reconnects
    • Constructor Detail

      • DefaultConnector

        public DefaultConnector()
        PUBLIC: Construct a Connector with default settings The database URL will still need to be set.
      • DefaultConnector

        public DefaultConnector​(java.lang.String driverClassName,
                                java.lang.String driverURLHeader,
                                java.lang.String databaseURL)
        PUBLIC: Construct a Connector with the specified settings.
    • Method Detail

      • clone

        public java.lang.Object clone()
        INTERNAL: Clone the connector.
        Specified by:
        clone in interface Connector
        Overrides:
        clone in class java.lang.Object
      • connect

        public java.sql.Connection connect​(java.util.Properties properties,
                                           Session session)
                                    throws DatabaseException
        INTERNAL: Connect with the specified properties and session. Return the Connection.
        Specified by:
        connect in interface Connector
        Returns:
        java.sql.Connection
        Throws:
        DatabaseException
      • shouldUseDriverManager

        public boolean shouldUseDriverManager​(java.util.Properties properties,
                                              Session session)
        INTERNAL: Indicates whether DriverManager should be used.
        Returns:
        boolean
      • directConnect

        protected java.sql.Connection directConnect​(java.util.Properties properties)
                                             throws DatabaseException
        INTERNAL: Connect directly - without using DriverManager. Return the Connection.
        Returns:
        java.sql.Connection
        Throws:
        DatabaseException
      • getConnectionString

        public java.lang.String getConnectionString()
        PUBLIC: Return the JDBC connection string. This is a combination of the driver-specific URL header and the database URL.
      • getConnectionDetails

        public java.lang.String getConnectionDetails()
        PUBLIC: Provide the details of my connection information. This is primarily for JMX runtime services.
        Specified by:
        getConnectionDetails in interface Connector
        Returns:
        java.lang.String
      • getDatabaseURL

        public java.lang.String getDatabaseURL()
        PUBLIC: The database URL is the JDBC URL for the database server. The driver header is not be included in this URL (e.g. "dbase files"; not "jdbc:odbc:dbase files").
      • getDriverClassName

        public java.lang.String getDriverClassName()
        PUBLIC: The driver class is the name of the Java class for the JDBC driver being used (e.g. "sun.jdbc.odbc.JdbcOdbcDriver").
      • getDriverURLHeader

        public java.lang.String getDriverURLHeader()
        PUBLIC: The driver URL header is the string predetermined by the JDBC driver to be part of the URL connection string, (e.g. "jdbc:odbc:"). This is required to connect to the database.
      • initialize

        protected void initialize​(java.lang.String driverClassName,
                                  java.lang.String driverURLHeader,
                                  java.lang.String databaseURL)
        INTERNAL: Initialize the connector with the specified settings.
      • loadDriverClass

        protected void loadDriverClass​(Session session)
                                throws DatabaseException
        INTERNAL: Ensure that the driver has been loaded and registered with the DriverManager. Just loading the class should cause the static initialization code to do the necessary registration. Return the loaded driver Class.
        Throws:
        DatabaseException
      • setDatabaseURL

        public void setDatabaseURL​(java.lang.String databaseURL)
        PUBLIC: The database URL is the JDBC URL for the database server. The driver header is not be included in this URL (e.g. "dbase files"; not "jdbc:odbc:dbase files").
      • setDriverClassName

        public void setDriverClassName​(java.lang.String driverClassName)
        PUBLIC: The driver class is the name of the Java class for the JDBC driver being used (e.g. "sun.jdbc.odbc.JdbcOdbcDriver").
      • setDriverURLHeader

        public void setDriverURLHeader​(java.lang.String driverURLHeader)
        PUBLIC: The driver URL header is the string predetermined by the JDBC driver to be part of the URL connection string, (e.g. "jdbc:odbc:"). This is required to connect to the database.
      • toString

        public java.lang.String toString()
        PUBLIC: Print connection string.
        Overrides:
        toString in class java.lang.Object
      • toString

        public void toString​(java.io.PrintWriter writer)
        INTERNAL: Print something useful on the log.
        Specified by:
        toString in interface Connector
      • clearDriverClassAndDriver

        public void clearDriverClassAndDriver()
        INTERNAL: Discard the cached driver class and driver.