Class StatementCache

    • Field Detail

      • ALL_TYPES

        protected static final java.lang.String[] ALL_TYPES
      • CALLABLE_TYPE

        protected static final java.lang.String[] CALLABLE_TYPE
      • PREPARED_TYPE

        protected static final java.lang.String[] PREPARED_TYPE
      • NO_TYPE

        protected static final java.lang.String[] NO_TYPE
      • STATEMENT_CACHE_ATTR

        protected static final java.lang.String STATEMENT_CACHE_ATTR
    • Constructor Detail

      • StatementCache

        public StatementCache()
    • Method Detail

      • getTypes

        public java.lang.String[] getTypes()
      • setProperties

        public void setProperties​(java.util.Map<java.lang.String,​PoolProperties.InterceptorProperty> properties)
        Description copied from class: JdbcInterceptor
        Called during the creation of an interceptor The properties can be set during the configuration of an interceptor Override this method to perform type casts between string values and object properties
        Overrides:
        setProperties in class JdbcInterceptor
        Parameters:
        properties - The properties
      • poolStarted

        public void poolStarted​(ConnectionPool pool)
        Description copied from class: JdbcInterceptor
        This method is invoked by a connection pool when the pool is first started up, usually when the first connection is requested. Interceptor classes can override this method if they keep static variables or other tracking means around. This method is only invoked on a single instance of the interceptor, and not on every instance created.
        Overrides:
        poolStarted in class JdbcInterceptor
        Parameters:
        pool - - the pool that is being closed.
      • poolClosed

        public void poolClosed​(ConnectionPool pool)
        Description copied from class: JdbcInterceptor
        This method is invoked by a connection pool when the pool is closed. Interceptor classes can override this method if they keep static variables or other tracking means around. This method is only invoked on a single instance of the interceptor, and not on every instance created.
        Overrides:
        poolClosed in class JdbcInterceptor
        Parameters:
        pool - - the pool that is being closed.
      • disconnected

        public void disconnected​(ConnectionPool parent,
                                 PooledConnection con,
                                 boolean finalizing)
        Description copied from class: JdbcInterceptor
        Called when Connection.close() is called on the underlying connection. This is to notify the interceptors, that the physical connection has been released. Implementation of this method should be thought through with care, as no actions should trigger an exception.
        Overrides:
        disconnected in class JdbcInterceptor
        Parameters:
        parent - - the connection pool that this connection belongs to
        con - - the pooled connection that holds this connection
        finalizing - - if this connection is finalizing. True means that the pooled connection will not reconnect the underlying connection
      • createDecorator

        protected java.lang.Object createDecorator​(java.lang.Object proxy,
                                                   java.lang.reflect.Method method,
                                                   java.lang.Object[] args,
                                                   java.lang.Object statement,
                                                   java.lang.reflect.Constructor<?> constructor,
                                                   java.lang.String sql)
                                            throws java.lang.InstantiationException,
                                                   java.lang.IllegalAccessException,
                                                   java.lang.reflect.InvocationTargetException
        Description copied from class: StatementDecoratorInterceptor
        Creates a proxy for a Statement.
        Overrides:
        createDecorator in class StatementDecoratorInterceptor
        Parameters:
        proxy - The proxy object on which the method that triggered the creation of the statement was called.
        method - The method that was called on the proxy
        args - The arguments passed as part of the method call to the proxy
        statement - The statement object that is to be proxied
        constructor - The constructor for the desired proxy
        sql - The sql of of the statement
        Returns:
        A new proxy for the Statement
        Throws:
        java.lang.InstantiationException - Couldn't instantiate object
        java.lang.IllegalAccessException - Inaccessible constructor
        java.lang.reflect.InvocationTargetException - Exception thrown from constructor
      • invoke

        public java.lang.Object invoke​(java.lang.Object proxy,
                                       java.lang.reflect.Method method,
                                       java.lang.Object[] args)
                                throws java.lang.Throwable
        Description copied from class: AbstractCreateStatementInterceptor
        Gets invoked each time an operation on Connection is invoked.
        Specified by:
        invoke in interface java.lang.reflect.InvocationHandler
        Overrides:
        invoke in class AbstractCreateStatementInterceptor
        Throws:
        java.lang.Throwable
      • getCache

        protected java.util.concurrent.ConcurrentHashMap<org.apache.tomcat.jdbc.pool.interceptor.StatementCache.CacheKey,​StatementCache.CachedStatement> getCache()
      • createCacheKey

        protected org.apache.tomcat.jdbc.pool.interceptor.StatementCache.CacheKey createCacheKey​(java.lang.reflect.Method method,
                                                                                                 java.lang.Object[] args)
      • createCacheKey

        protected org.apache.tomcat.jdbc.pool.interceptor.StatementCache.CacheKey createCacheKey​(java.lang.String methodName,
                                                                                                 java.lang.Object[] args)