Class SQLConnection
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 Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
protected Connection
static final int
static final int
Fields inherited from interface org.pentaho.commons.connection.IPentahoConnection
CLASSNAME_KEY, CONNECTION, CONNECTION_NAME, DRIVER_KEY, HQL_DATASOURCE, JNDI_NAME_KEY, KEYS, LOCATION_KEY, MDX_DATASOURCE, MDX_OLAP4J_DATASOURCE, NONE_DATASOURCE, PASSWORD_KEY, PROVIDER, QUERY_KEY, SQL_DATASOURCE, USERNAME_KEY, XML_DATASOURCE
-
Constructor Summary
ConstructorDescriptionSQLConnection
(String driverName, String location, String userName, String password, org.pentaho.platform.api.engine.ILogger logger) -
Method Summary
Modifier and TypeMethodDescriptionprotected Connection
captureConnection
(Connection connection) Allow wrapping/proxying of the native SQL connection by a subclass.void
void
close()
boolean
connect
(Properties props) protected void
enhanceConnection
(Connection connection) Allows the native SQL Connection to be enhanced in a subclass.protected void
enhanceStatement
(Statement statement) Allows the native SQL Statement to be enhanced by a subclass.int
int
org.pentaho.commons.connection.IPentahoResultSet
executeQuery
(String query) Executes the specified query.org.pentaho.commons.connection.IPentahoResultSet
executeQuery
(String query, int scrollType, int concur) Executes the specified query with the defined parametersreturn datasource type SQLint
int
int
Returns the query timeout value (in seconds)boolean
Returns the state of the readonly flagorg.pentaho.commons.connection.IPentahoResultSet
protected void
boolean
protected void
initWithJNDI
(String jndiName) boolean
isClosed()
boolean
boolean
boolean
org.pentaho.commons.connection.IPentahoResultSet
prepareAndExecuteQuery
(String query, List parameters) org.pentaho.commons.connection.IPentahoResultSet
prepareAndExecuteQuery
(String query, List parameters, int scrollType, int concur) boolean
void
setFallBackToNonscrollableOnError
(boolean fallBackToNonscrollableOnError) void
setFetchSize
(int fetchSize) void
setForcedForwardOnly
(boolean forcedForwardOnly) void
setLogger
(org.pentaho.platform.api.engine.ILogger logger) void
setMaxRows
(int maxRows) void
setProperties
(Properties props) void
setQueryTimeout
(int timeInSec) Sets the valid of the timeout (in seconds)void
setReadOnly
(boolean value) Sets the connection object to readonly.protected void
The purpose of this method is to set limitations such as fetchSize and maxrows on the provided statement.protected void
unEnhanceConnection
(Connection connection) Allows enhancements to the native SQL Connection to be removed in a subclass.
-
Field Details
-
nativeConnection
-
RESULTSET_SCROLLABLE
public static final int RESULTSET_SCROLLABLE- See Also:
-
RESULTSET_FORWARDONLY
public static final int RESULTSET_FORWARDONLY- See Also:
-
CONCUR_READONLY
public static final int CONCUR_READONLY- See Also:
-
CONCUR_UPDATABLE
public static final int CONCUR_UPDATABLE- See Also:
-
-
Constructor Details
-
SQLConnection
public SQLConnection() -
SQLConnection
-
-
Method Details
-
setLogger
public void setLogger(org.pentaho.platform.api.engine.ILogger logger) - Specified by:
setLogger
in interfaceorg.pentaho.platform.engine.core.system.IPentahoLoggingConnection
-
setProperties
- Specified by:
setProperties
in interfaceorg.pentaho.commons.connection.IPentahoConnection
-
setQueryTimeout
public void setQueryTimeout(int timeInSec) Sets the valid of the timeout (in seconds)- Specified by:
setQueryTimeout
in interfaceorg.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
-
initialized
public boolean initialized()- Specified by:
initialized
in interfaceorg.pentaho.commons.connection.IPentahoConnection
-
getDatasourceType
return datasource type SQL- Specified by:
getDatasourceType
in interfaceorg.pentaho.commons.connection.IPentahoConnection
- Returns:
- datasource type
-
initWithJNDI
-
enhanceConnection
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
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
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
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 interfaceorg.pentaho.commons.connection.IPentahoConnection
-
getLastQuery
- Specified by:
getLastQuery
in interfaceorg.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 interfaceorg.pentaho.commons.connection.IPentahoConnection
- Parameters:
query
- the query to execute- Returns:
- the resultset from the query
- Throws:
SQLException
- indicates an error running the queryInterruptedException
- indicates that the query took longer than the allowed timeout valueorg.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 executedscrollType
-concur
-- Returns:
- the result set of data for the query
- Throws:
SQLException
- indicates an error running the queryInterruptedException
- indicates the query took longer than allowable by the query timeoutorg.pentaho.platform.api.engine.PentahoSystemException
-
prepareAndExecuteQuery
public org.pentaho.commons.connection.IPentahoResultSet prepareAndExecuteQuery(String query, List parameters) throws SQLException - Specified by:
prepareAndExecuteQuery
in interfaceorg.pentaho.commons.connection.IPentahoConnection
- Throws:
SQLException
-
setStatementLimitations
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 interfaceorg.pentaho.commons.connection.IPentahoConnection
-
isClosed
public boolean isClosed()- Specified by:
isClosed
in interfaceorg.pentaho.commons.connection.IPentahoConnection
-
isReadOnly
public boolean isReadOnly()- Specified by:
isReadOnly
in interfaceorg.pentaho.commons.connection.IPentahoConnection
-
clearWarnings
public void clearWarnings()- Specified by:
clearWarnings
in interfaceorg.pentaho.commons.connection.IPentahoConnection
-
getResultSet
public org.pentaho.commons.connection.IPentahoResultSet getResultSet()- Specified by:
getResultSet
in interfaceorg.pentaho.commons.connection.IPentahoConnection
-
connect
- Specified by:
connect
in interfaceorg.pentaho.commons.connection.IPentahoConnection
-
execute
- Throws:
SQLException
-
execute
- Throws:
SQLException
-
getNativeConnection
- Returns:
- Returns the nativeConnection.
-
getFetchSize
public int getFetchSize()- Returns:
- Returns the fetchSize.
-
setFetchSize
public void setFetchSize(int fetchSize) - Specified by:
setFetchSize
in interfaceorg.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 interfaceorg.pentaho.commons.connection.ILimitableConnection
- Specified by:
setMaxRows
in interfaceorg.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)
-