Class PooledConnection

java.lang.Object
org.apache.ibatis.datasource.pooled.PooledConnection
All Implemented Interfaces:
InvocationHandler

class PooledConnection extends Object implements InvocationHandler
  • Field Details

    • CLOSE

      private static final String CLOSE
      See Also:
    • IFACES

      private static final Class<?>[] IFACES
    • hashCode

      private final int hashCode
    • dataSource

      private final PooledDataSource dataSource
    • realConnection

      private final Connection realConnection
    • proxyConnection

      private final Connection proxyConnection
    • checkoutTimestamp

      private long checkoutTimestamp
    • createdTimestamp

      private long createdTimestamp
    • lastUsedTimestamp

      private long lastUsedTimestamp
    • connectionTypeCode

      private int connectionTypeCode
    • valid

      private boolean valid
  • Constructor Details

    • PooledConnection

      public PooledConnection(Connection connection, PooledDataSource dataSource)
      Constructor for SimplePooledConnection that uses the Connection and PooledDataSource passed in.
      Parameters:
      connection - - the connection that is to be presented as a pooled connection
      dataSource - - the dataSource that the connection is from
  • Method Details

    • invalidate

      public void invalidate()
      Invalidates the connection.
    • isValid

      public boolean isValid()
      Method to see if the connection is usable.
      Returns:
      True if the connection is usable
    • getRealConnection

      public Connection getRealConnection()
      Getter for the *real* connection that this wraps.
      Returns:
      The connection
    • getProxyConnection

      public Connection getProxyConnection()
      Getter for the proxy for the connection.
      Returns:
      The proxy
    • getRealHashCode

      public int getRealHashCode()
      Gets the hashcode of the real connection (or 0 if it is null).
      Returns:
      The hashcode of the real connection (or 0 if it is null)
    • getConnectionTypeCode

      public int getConnectionTypeCode()
      Getter for the connection type (based on url + user + password).
      Returns:
      The connection type
    • setConnectionTypeCode

      public void setConnectionTypeCode(int connectionTypeCode)
      Setter for the connection type.
      Parameters:
      connectionTypeCode - - the connection type
    • getCreatedTimestamp

      public long getCreatedTimestamp()
      Getter for the time that the connection was created.
      Returns:
      The creation timestamp
    • setCreatedTimestamp

      public void setCreatedTimestamp(long createdTimestamp)
      Setter for the time that the connection was created.
      Parameters:
      createdTimestamp - - the timestamp
    • getLastUsedTimestamp

      public long getLastUsedTimestamp()
      Getter for the time that the connection was last used.
      Returns:
      - the timestamp
    • setLastUsedTimestamp

      public void setLastUsedTimestamp(long lastUsedTimestamp)
      Setter for the time that the connection was last used.
      Parameters:
      lastUsedTimestamp - - the timestamp
    • getTimeElapsedSinceLastUse

      public long getTimeElapsedSinceLastUse()
      Getter for the time since this connection was last used.
      Returns:
      - the time since the last use
    • getAge

      public long getAge()
      Getter for the age of the connection.
      Returns:
      the age
    • getCheckoutTimestamp

      public long getCheckoutTimestamp()
      Getter for the timestamp that this connection was checked out.
      Returns:
      the timestamp
    • setCheckoutTimestamp

      public void setCheckoutTimestamp(long timestamp)
      Setter for the timestamp that this connection was checked out.
      Parameters:
      timestamp - the timestamp
    • getCheckoutTime

      public long getCheckoutTime()
      Getter for the time that this connection has been checked out.
      Returns:
      the time
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Allows comparing this connection to another.
      Overrides:
      equals in class Object
      Parameters:
      obj - - the other connection to test for equality
      See Also:
    • invoke

      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
      Required for InvocationHandler implementation.
      Specified by:
      invoke in interface InvocationHandler
      Parameters:
      proxy - - not used
      method - - the method to be executed
      args - - the parameters to be passed to the method
      Throws:
      Throwable
      See Also:
    • checkConnection

      private void checkConnection() throws SQLException
      Throws:
      SQLException