Class SQLConnection

  • All Implemented Interfaces:
    org.pentaho.commons.connection.ILimitableConnection, org.pentaho.commons.connection.IPentahoConnection, org.pentaho.platform.engine.core.system.IPentahoLoggingConnection

    public class SQLConnection
    extends Object
    implements org.pentaho.platform.engine.core.system.IPentahoLoggingConnection, org.pentaho.commons.connection.ILimitableConnection
    Author:
    wseyler TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Style - Code Templates
    • Constructor Detail

      • SQLConnection

        public SQLConnection()
      • SQLConnection

        public SQLConnection​(String driverName,
                             String location,
                             String userName,
                             String password,
                             org.pentaho.platform.api.engine.ILogger logger)
    • Method Detail

      • setLogger

        public void setLogger​(org.pentaho.platform.api.engine.ILogger logger)
        Specified by:
        setLogger in interface org.pentaho.platform.engine.core.system.IPentahoLoggingConnection
      • setProperties

        public void setProperties​(Properties props)
        Specified by:
        setProperties in interface org.pentaho.commons.connection.IPentahoConnection
      • setQueryTimeout

        public void setQueryTimeout​(int timeInSec)
        Sets the valid of the timeout (in seconds)
        Specified by:
        setQueryTimeout in interface org.pentaho.commons.connection.ILimitableConnection
      • setReadOnly

        public void setReadOnly​(boolean value)
        Sets the connection object to readonly.
        Parameters:
        value -
      • getQueryTimeout

        public int getQueryTimeout()
        Returns the query timeout value (in seconds)
      • initialized

        public boolean initialized()
        Specified by:
        initialized in interface org.pentaho.commons.connection.IPentahoConnection
      • getDatasourceType

        public String getDatasourceType()
        return datasource type SQL
        Specified by:
        getDatasourceType in interface org.pentaho.commons.connection.IPentahoConnection
        Returns:
        datasource type
      • initWithJNDI

        protected void initWithJNDI​(String jndiName)
      • enhanceConnection

        protected void enhanceConnection​(Connection connection)
                                  throws SQLException
        Allows the native SQL Connection to be enhanced in a subclass. Best used when a connection needs to be enhanced with an "effective user"
        Parameters:
        connection -
        Throws:
        SQLException
      • unEnhanceConnection

        protected void unEnhanceConnection​(Connection connection)
                                    throws SQLException
        Allows enhancements to the native SQL Connection to be removed in a subclass. Best used when a connection needs to be enhanced with an "effective user"
        Parameters:
        connection -
        Throws:
        SQLException
      • captureConnection

        protected Connection captureConnection​(Connection connection)
                                        throws SQLException
        Allow wrapping/proxying of the native SQL connection by a subclass. Best used when a connection needs to be be enhanced or proxied for Single Signon or possibly tenanting.
        Parameters:
        connection -
        Returns:
        Throws:
        SQLException
      • enhanceStatement

        protected void enhanceStatement​(Statement statement)
                                 throws SQLException
        Allows the native SQL Statement to be enhanced by a subclass. Examples may be to allow additional information like a user to be bound to the statement.
        Parameters:
        statement -
        Throws:
        SQLException
      • close

        public void close()
        Specified by:
        close in interface org.pentaho.commons.connection.IPentahoConnection
      • getLastQuery

        public String getLastQuery()
        Specified by:
        getLastQuery in interface org.pentaho.commons.connection.IPentahoConnection
      • executeQuery

        public org.pentaho.commons.connection.IPentahoResultSet executeQuery​(String query)
                                                                      throws SQLException,
                                                                             InterruptedException,
                                                                             org.pentaho.platform.api.engine.PentahoSystemException
        Executes the specified query.
        Specified by:
        executeQuery in interface org.pentaho.commons.connection.IPentahoConnection
        Parameters:
        query - the query to execute
        Returns:
        the resultset from the query
        Throws:
        SQLException - indicates an error running the query
        InterruptedException - indicates that the query took longer than the allowed timeout value
        org.pentaho.platform.api.engine.PentahoSystemException
      • executeQuery

        public org.pentaho.commons.connection.IPentahoResultSet executeQuery​(String query,
                                                                             int scrollType,
                                                                             int concur)
                                                                      throws SQLException,
                                                                             InterruptedException,
                                                                             org.pentaho.platform.api.engine.PentahoSystemException
        Executes the specified query with the defined parameters
        Parameters:
        query - the query to be executed
        scrollType -
        concur -
        Returns:
        the result set of data for the query
        Throws:
        SQLException - indicates an error running the query
        InterruptedException - indicates the query took longer than allowable by the query timeout
        org.pentaho.platform.api.engine.PentahoSystemException
      • prepareAndExecuteQuery

        public org.pentaho.commons.connection.IPentahoResultSet prepareAndExecuteQuery​(String query,
                                                                                       List parameters)
                                                                                throws SQLException
        Specified by:
        prepareAndExecuteQuery in interface org.pentaho.commons.connection.IPentahoConnection
        Throws:
        SQLException
      • setStatementLimitations

        protected void setStatementLimitations​(Statement stmt)
                                        throws SQLException
        The purpose of this method is to set limitations such as fetchSize and maxrows on the provided statement. If the JDBC driver does not support the setting and throws an Exception, we will re-throw iff the limit was explicitly set.
        Parameters:
        stmt - Either a Statement or PreparedStatement
        Throws:
        SQLException - , UnsupportedOperationException
      • prepareAndExecuteQuery

        public org.pentaho.commons.connection.IPentahoResultSet prepareAndExecuteQuery​(String query,
                                                                                       List parameters,
                                                                                       int scrollType,
                                                                                       int concur)
                                                                                throws SQLException
        Throws:
        SQLException
      • preparedQueriesSupported

        public boolean preparedQueriesSupported()
        Specified by:
        preparedQueriesSupported in interface org.pentaho.commons.connection.IPentahoConnection
      • isClosed

        public boolean isClosed()
        Specified by:
        isClosed in interface org.pentaho.commons.connection.IPentahoConnection
      • isReadOnly

        public boolean isReadOnly()
        Specified by:
        isReadOnly in interface org.pentaho.commons.connection.IPentahoConnection
      • clearWarnings

        public void clearWarnings()
        Specified by:
        clearWarnings in interface org.pentaho.commons.connection.IPentahoConnection
      • getResultSet

        public org.pentaho.commons.connection.IPentahoResultSet getResultSet()
        Specified by:
        getResultSet in interface org.pentaho.commons.connection.IPentahoConnection
      • connect

        public boolean connect​(Properties props)
        Specified by:
        connect in interface org.pentaho.commons.connection.IPentahoConnection
      • getNativeConnection

        public Connection getNativeConnection()
        Returns:
        Returns the nativeConnection.
      • getFetchSize

        public int getFetchSize()
        Returns:
        Returns the fetchSize.
      • setFetchSize

        public void setFetchSize​(int fetchSize)
        Specified by:
        setFetchSize in interface org.pentaho.commons.connection.IPentahoConnection
        Parameters:
        fetchSize - The fetchSize to set.
      • getMaxRows

        public int getMaxRows()
        Returns:
        Returns the maxRows.
      • setMaxRows

        public void setMaxRows​(int maxRows)
        Specified by:
        setMaxRows in interface org.pentaho.commons.connection.ILimitableConnection
        Specified by:
        setMaxRows in interface org.pentaho.commons.connection.IPentahoConnection
        Parameters:
        maxRows - The maxRows to set.
      • getReadOnly

        public boolean getReadOnly()
        Returns the state of the readonly flag
        Returns:
        true if the connection is set to readonly
      • setFallBackToNonscrollableOnError

        public void setFallBackToNonscrollableOnError​(boolean fallBackToNonscrollableOnError)
      • isFallBackToNonscrollableOnError

        public boolean isFallBackToNonscrollableOnError()
      • isForcedForwardOnly

        public boolean isForcedForwardOnly()
      • setForcedForwardOnly

        public void setForcedForwardOnly​(boolean forcedForwardOnly)