Class PoolingDataSource<C extends java.sql.Connection>

  • Type Parameters:
    C - The connection type
    All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.Wrapper, javax.sql.CommonDataSource, javax.sql.DataSource
    Direct Known Subclasses:
    ManagedDataSource

    public class PoolingDataSource<C extends java.sql.Connection>
    extends java.lang.Object
    implements javax.sql.DataSource, java.lang.AutoCloseable
    A simple DataSource implementation that obtains Connections from the specified ObjectPool.
    Since:
    2.0
    • Constructor Summary

      Constructors 
      Constructor Description
      PoolingDataSource​(ObjectPool<C> pool)
      Constructs a new instance backed by the given connection pool.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Closes and free all Connections from the pool.
      java.sql.Connection getConnection()
      Returns a Connection from my pool, according to the contract specified by ObjectPool.borrowObject().
      java.sql.Connection getConnection​(java.lang.String uname, java.lang.String passwd)
      Throws UnsupportedOperationException
      int getLoginTimeout()
      Throws UnsupportedOperationException.
      java.io.PrintWriter getLogWriter()
      Returns my log writer.
      java.util.logging.Logger getParentLogger()  
      protected ObjectPool<C> getPool()  
      boolean isAccessToUnderlyingConnectionAllowed()
      Returns the value of the accessToUnderlyingConnectionAllowed property.
      boolean isWrapperFor​(java.lang.Class<?> iface)  
      void setAccessToUnderlyingConnectionAllowed​(boolean allow)
      Sets the value of the accessToUnderlyingConnectionAllowed property.
      void setLoginTimeout​(int seconds)
      Throws UnsupportedOperationException.
      void setLogWriter​(java.io.PrintWriter out)
      Sets my log writer.
      <T> T unwrap​(java.lang.Class<T> iface)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.sql.CommonDataSource

        createShardingKeyBuilder
      • Methods inherited from interface javax.sql.DataSource

        createConnectionBuilder
    • Constructor Detail

      • PoolingDataSource

        public PoolingDataSource​(ObjectPool<C> pool)
        Constructs a new instance backed by the given connection pool.
        Parameters:
        pool - the given connection pool.
    • Method Detail

      • close

        public void close()
                   throws java.lang.RuntimeException,
                          java.sql.SQLException
        Closes and free all Connections from the pool.
        Specified by:
        close in interface java.lang.AutoCloseable
        Throws:
        java.lang.RuntimeException
        java.sql.SQLException
        Since:
        2.1
      • getConnection

        public java.sql.Connection getConnection()
                                          throws java.sql.SQLException
        Returns a Connection from my pool, according to the contract specified by ObjectPool.borrowObject().
        Specified by:
        getConnection in interface javax.sql.DataSource
        Throws:
        java.sql.SQLException
      • getConnection

        public java.sql.Connection getConnection​(java.lang.String uname,
                                                 java.lang.String passwd)
                                          throws java.sql.SQLException
        Throws UnsupportedOperationException
        Specified by:
        getConnection in interface javax.sql.DataSource
        Throws:
        java.lang.UnsupportedOperationException - always thrown
        java.sql.SQLException
      • getLoginTimeout

        public int getLoginTimeout()
        Throws UnsupportedOperationException.
        Specified by:
        getLoginTimeout in interface javax.sql.CommonDataSource
        Specified by:
        getLoginTimeout in interface javax.sql.DataSource
        Throws:
        java.lang.UnsupportedOperationException - As this implementation does not support this feature.
      • getLogWriter

        public java.io.PrintWriter getLogWriter()
        Returns my log writer.
        Specified by:
        getLogWriter in interface javax.sql.CommonDataSource
        Specified by:
        getLogWriter in interface javax.sql.DataSource
        Returns:
        my log writer
        See Also:
        DataSource.getLogWriter()
      • getParentLogger

        public java.util.logging.Logger getParentLogger()
                                                 throws java.sql.SQLFeatureNotSupportedException
        Specified by:
        getParentLogger in interface javax.sql.CommonDataSource
        Throws:
        java.sql.SQLFeatureNotSupportedException
      • isAccessToUnderlyingConnectionAllowed

        public boolean isAccessToUnderlyingConnectionAllowed()
        Returns the value of the accessToUnderlyingConnectionAllowed property.
        Returns:
        true if access to the underlying Connection is allowed, false otherwise.
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class<?> iface)
                             throws java.sql.SQLException
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • setAccessToUnderlyingConnectionAllowed

        public void setAccessToUnderlyingConnectionAllowed​(boolean allow)
        Sets the value of the accessToUnderlyingConnectionAllowed property. It controls if the PoolGuard allows access to the underlying connection. (Default: false)
        Parameters:
        allow - Access to the underlying connection is granted when true.
      • setLoginTimeout

        public void setLoginTimeout​(int seconds)
        Throws UnsupportedOperationException.
        Specified by:
        setLoginTimeout in interface javax.sql.CommonDataSource
        Specified by:
        setLoginTimeout in interface javax.sql.DataSource
        Throws:
        java.lang.UnsupportedOperationException - As this implementation does not support this feature.
      • setLogWriter

        public void setLogWriter​(java.io.PrintWriter out)
        Sets my log writer.
        Specified by:
        setLogWriter in interface javax.sql.CommonDataSource
        Specified by:
        setLogWriter in interface javax.sql.DataSource
        See Also:
        DataSource.setLogWriter(java.io.PrintWriter)
      • unwrap

        public <T> T unwrap​(java.lang.Class<T> iface)
                     throws java.sql.SQLException
        Specified by:
        unwrap in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException