java.lang.Object
org.pentaho.platform.plugin.services.connections.sql.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
  • Field Details

  • Constructor Details

    • SQLConnection

      public SQLConnection()
    • SQLConnection

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

    • 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)
    • init

      protected void init(String driverName, String location, String userName, String password)
    • 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
    • execute

      public int execute(String query) throws SQLException
      Throws:
      SQLException
    • execute

      public int execute(String query, int scrollType, int concur) throws SQLException
      Throws:
      SQLException
    • 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)