org.teiid.jdbc
Class ConnectionImpl

java.lang.Object
  extended by org.teiid.jdbc.WrapperImpl
      extended by org.teiid.jdbc.ConnectionImpl
All Implemented Interfaces:
java.sql.Connection, java.sql.Wrapper

public class ConnectionImpl
extends WrapperImpl
implements java.sql.Connection


Field Summary
static int DEFAULT_ISOLATION
           
protected  java.util.Properties propInfo
           
protected  ServerConnection serverConn
           
 
Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
 
Constructor Summary
ConnectionImpl(ServerConnection serverConn, java.util.Properties info, java.lang.String url)
           
 
Method Summary
 void clearWarnings()
           
 void close()
           
 void commit()
          This method makes any changes involved in a transaction permanent and releases any locks held by the connection object.
protected  void commitTransaction(XidImpl arg0, boolean arg1)
           
 java.sql.Array createArrayOf(java.lang.String typeName, java.lang.Object[] elements)
           
 java.sql.Blob createBlob()
           
 java.sql.Clob createClob()
           
 java.sql.NClob createNClob()
           
 java.sql.SQLXML createSQLXML()
           
 java.sql.Statement createStatement()
          This creates a MMStatement object for sending SQL statements to the MetaMatrix server.
 java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency)
          Creates a Statement object that will produce ResultSet objects of the type resultSetType and concurrency level resultSetConcurrency.
 java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 java.sql.Struct createStruct(java.lang.String typeName, java.lang.Object[] attributes)
           
protected  void endTransaction(XidImpl arg0, int arg1)
           
protected  void forgetTransaction(XidImpl arg0)
           
 boolean getAutoCommit()
          This method returns the current status of the connection in regards to it's auto-commit state.
 java.lang.String getCatalog()
           
 java.util.Properties getClientInfo()
           
 java.lang.String getClientInfo(java.lang.String name)
           
 java.lang.String getConnectionId()
          Connection identifier of this connection
protected  java.util.Properties getConnectionProperties()
           
 java.lang.String getDatabaseName()
          Get the database name that this connection is representing
 int getHoldability()
          Retrieves the current holdability of ResultSet objects created using this Connection object.
 java.sql.DatabaseMetaData getMetaData()
           
 int getTransactionIsolation()
           
protected  XidImpl getTransactionXid()
           
 java.util.Map getTypeMap()
          Retreives the type map associated with this Connection object.
 int getVDBVersion()
           
 java.sql.SQLWarning getWarnings()
          This method will return the first warning reported by calls on this connection, or null if none exist.
 boolean isClosed()
          This method will return whether this connection is closed or not.
 boolean isReadOnly()
          This method will return whether this connection is read only or not.
 boolean isSameProcess(ConnectionImpl conn)
           
 boolean isValid(int timeout)
           
 java.lang.String nativeSQL(java.lang.String sql)
          This method will convert the given SQL String into a MetaMatrix SQL Request.
 java.sql.CallableStatement prepareCall(java.lang.String sql)
          Creates a CallableStatement object that contains sql and that will produce ResultSet objects that are non-scrollable and non-updatable.
 java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency)
          Creates a CallableStatement object that contains a sql and that will produce ResultSet objects of the type resultSetType and with a concurrency level of resultSetConcurrency.
 java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String sql)
          This method creates a MMPreparedStatement which is used for sending parameterized SQL statements to the MetaMatrix server.
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int autoGeneratedKeys)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int[] columnIndexes)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency)
          Creates a PreparedStatement object that contains a sql and that will produce ResultSet objects of the type resultSetType and with a concurrency level of resultSetConcurrency.
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
          This method creates a MMPreparedStatement which is used for sending parameterized SQL statements to the MetaMatrix server and it has the capability to retrieve auto-generated keys.
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, java.lang.String[] columnNames)
           
protected  int prepareTransaction(XidImpl arg0)
           
protected  javax.transaction.xa.Xid[] recoverTransaction(int arg0)
           
 void recycleConnection()
           
 void releaseSavepoint(java.sql.Savepoint savepoint)
           
 void rollback()
          This method will drop all changes made since the beginning of the transaction and release any MetaMatrix server locks currently held by this connection.
 void rollback(java.sql.Savepoint savepoint)
           
protected  void rollbackTransaction(XidImpl arg0)
           
 void setAutoCommit(boolean autoCommit)
          This method will set the connection's auto commit mode accordingly.
 void setCatalog(java.lang.String catalog)
          Metamatrix does not allow setting a catalog through a connection.
 void setClientInfo(java.util.Properties properties)
           
 void setClientInfo(java.lang.String name, java.lang.String value)
           
 void setHoldability(int holdability)
           
 void setReadOnly(boolean readOnly)
           
 java.sql.Savepoint setSavepoint()
           
 java.sql.Savepoint setSavepoint(java.lang.String name)
           
 void setTransactionIsolation(int level)
           
 void setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>> map)
           
protected  void startTransaction(XidImpl arg0, int arg1, int timeout)
           
 
Methods inherited from class org.teiid.jdbc.WrapperImpl
isWrapperFor, unwrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
 

Field Detail

DEFAULT_ISOLATION

public static final int DEFAULT_ISOLATION
See Also:
Constant Field Values

propInfo

protected java.util.Properties propInfo

serverConn

protected ServerConnection serverConn
Constructor Detail

ConnectionImpl

public ConnectionImpl(ServerConnection serverConn,
                      java.util.Properties info,
                      java.lang.String url)
Method Detail

getConnectionProperties

protected java.util.Properties getConnectionProperties()

getConnectionId

public java.lang.String getConnectionId()
Connection identifier of this connection

Returns:
identifier
Throws:
java.sql.SQLException

clearWarnings

public void clearWarnings()
                   throws java.sql.SQLException
Specified by:
clearWarnings in interface java.sql.Connection
Throws:
java.sql.SQLException

close

public void close()
           throws java.sql.SQLException
Specified by:
close in interface java.sql.Connection
Throws:
java.sql.SQLException

commit

public void commit()
            throws java.sql.SQLException

This method makes any changes involved in a transaction permanent and releases any locks held by the connection object. This is only used when auto-commit is set to false.

Specified by:
commit in interface java.sql.Connection
Throws:
java.sql.SQLException - if the transaction had been rolled back or marked to roll back.

createStatement

public java.sql.Statement createStatement()
                                   throws java.sql.SQLException

This creates a MMStatement object for sending SQL statements to the MetaMatrix server. This should be used for statements without parameters. For statements that are executed many times, use the PreparedStatement object.

Specified by:
createStatement in interface java.sql.Connection
Returns:
a Statement object.
Throws:
a - SQLException if a MetaMatrix server access error occurs.
java.sql.SQLException

createStatement

public java.sql.Statement createStatement(int resultSetType,
                                          int resultSetConcurrency)
                                   throws java.sql.SQLException

Creates a Statement object that will produce ResultSet objects of the type resultSetType and concurrency level resultSetConcurrency.

Specified by:
createStatement in interface java.sql.Connection
Parameters:
intvalue - indicating the ResultSet's type
intValue - indicating the ResultSet's concurrency
Returns:
Statement object.
Throws:
java.sql.SQLException

getAutoCommit

public boolean getAutoCommit()
                      throws java.sql.SQLException

This method returns the current status of the connection in regards to it's auto-commit state. By default, the auto-commit is set to true. Meaning that any transaction that occurs is automatically commited to the MetaMatrix server. #See corresponding setAutoCommit() method.

Specified by:
getAutoCommit in interface java.sql.Connection
Returns:
true if the statements on this connection get committed on execution.
Throws:
java.sql.SQLException - should never happen

getCatalog

public java.lang.String getCatalog()
                            throws java.sql.SQLException
Specified by:
getCatalog in interface java.sql.Connection
Throws:
java.sql.SQLException

getVDBVersion

public int getVDBVersion()
                  throws java.sql.SQLException
Throws:
java.sql.SQLException

getMetaData

public java.sql.DatabaseMetaData getMetaData()
                                      throws java.sql.SQLException
Specified by:
getMetaData in interface java.sql.Connection
Throws:
java.sql.SQLException

getDatabaseName

public java.lang.String getDatabaseName()
Get the database name that this connection is representing

Returns:
String name of the database

getHoldability

public int getHoldability()
                   throws java.sql.SQLException
Retrieves the current holdability of ResultSet objects created using this Connection object.

Specified by:
getHoldability in interface java.sql.Connection
Parameters:
holdability - int indicating the holdability
Returns:
int holdability
Throws:
java.sql.SQLException

getTransactionIsolation

public int getTransactionIsolation()
                            throws java.sql.SQLException
Specified by:
getTransactionIsolation in interface java.sql.Connection
Throws:
java.sql.SQLException

getTypeMap

public java.util.Map getTypeMap()
                         throws java.sql.SQLException
Retreives the type map associated with this Connection object. The type map contains entries for undefined types. This method always returns an empty map since it is not possible to add entries to this type map

Specified by:
getTypeMap in interface java.sql.Connection
Returns:
map containing undefined types(empty)
Throws:
SQLException, - should never occur
java.sql.SQLException

getWarnings

public java.sql.SQLWarning getWarnings()
                                throws java.sql.SQLException

This method will return the first warning reported by calls on this connection, or null if none exist.

Specified by:
getWarnings in interface java.sql.Connection
Returns:
A SQLWarning object if there are any warnings.
Throws:
SQLException, - should never occur
java.sql.SQLException

isClosed

public boolean isClosed()
                 throws java.sql.SQLException

This method will return whether this connection is closed or not.

Specified by:
isClosed in interface java.sql.Connection
Returns:
booleanvalue indicating if the connection is closed
Throws:
SQLException, - should never occur
java.sql.SQLException

isReadOnly

public boolean isReadOnly()
                   throws java.sql.SQLException

This method will return whether this connection is read only or not. It will throw a SQLException if a MetaMatrix server access error occurs.

Specified by:
isReadOnly in interface java.sql.Connection
Returns:
boolean value indication if connection is readonly
Throws:
SQLException, - should never occur
java.sql.SQLException

nativeSQL

public java.lang.String nativeSQL(java.lang.String sql)
                           throws java.sql.SQLException

This method will convert the given SQL String into a MetaMatrix SQL Request. This will convert any date escape sequences into the appropriate MetaMatrix type, and any kind of data transformations that the MetaMatrix server would expect. This method returns the native form of the statement that the driver would have sent.

Specified by:
nativeSQL in interface java.sql.Connection
Parameters:
sql - string to be coverted into SQL understood by metamatrix
Returns:
uncoverted sql string(escape parsing takesplace in metamatrix)
Throws:
SQLException, - should never occur
java.sql.SQLException

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql)
                                       throws java.sql.SQLException

Creates a CallableStatement object that contains sql and that will produce ResultSet objects that are non-scrollable and non-updatable. A SQL stored procedure call statement is handled by creating a CallableStatement for it.

Specified by:
prepareCall in interface java.sql.Connection
Parameters:
sql - String(escape syntax) for invoking a stored procedure.
Returns:
CallableStatement object that can be used to execute the storedProcedure
Throws:
java.sql.SQLException - if there is an error creating the callable statement object

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql,
                                              int resultSetType,
                                              int resultSetConcurrency)
                                       throws java.sql.SQLException

Creates a CallableStatement object that contains a sql and that will produce ResultSet objects of the type resultSetType and with a concurrency level of resultSetConcurrency. A SQL stored procedure call statement is handled by creating a CallableStatement for it.

Specified by:
prepareCall in interface java.sql.Connection
Parameters:
sql - String(escape syntax) for invoking a stored procedure.
intvalue - indicating the ResultSet's type
intValue - indicating the ResultSet's concurrency
Returns:
CallableStatement object that can be used to execute the storedProcedure
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql)
                                            throws java.sql.SQLException

This method creates a MMPreparedStatement which is used for sending parameterized SQL statements to the MetaMatrix server. A statement with or without IN parameters can be pre-compiled and stored in a MMPreparedStatement object. Since the MetaMatrix server does not pre-compile statements, a sql statement will be constructed using the parameters supplied which would be used for execution of this preparedStatement object.

Specified by:
prepareStatement in interface java.sql.Connection
Parameters:
sql - string representing a prepared statement
Returns:
a PreparedStatement object
Throws:
java.sql.SQLException - if there is an error creating a prepared statement object

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int resultSetType,
                                                   int resultSetConcurrency)
                                            throws java.sql.SQLException

Creates a PreparedStatement object that contains a sql and that will produce ResultSet objects of the type resultSetType and with a concurrency level of resultSetConcurrency.

Specified by:
prepareStatement in interface java.sql.Connection
Parameters:
sql - string representing a prepared statement
intvalue - indicating the ResultSet's type
intValue - indicating the ResultSet's concurrency
Returns:
a PreparedStatement object
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int resultSetType,
                                                   int resultSetConcurrency,
                                                   int resultSetHoldability)
                                            throws java.sql.SQLException

This method creates a MMPreparedStatement which is used for sending parameterized SQL statements to the MetaMatrix server and it has the capability to retrieve auto-generated keys.

Specified by:
prepareStatement in interface java.sql.Connection
Parameters:
sql - string representing a prepared statement
intValue - indicating the result set Type
intValue - indicating the result set concurrency
intValue - indicating the result set holdability
Returns:
a PreparedStatement object
Throws:
java.sql.SQLException - if there is an error creating a prepared statement object

rollback

public void rollback()
              throws java.sql.SQLException

This method will drop all changes made since the beginning of the transaction and release any MetaMatrix server locks currently held by this connection. This method rolls back transactions on all the statements currently open on this connection. This is used when then auto-commit has been disabled.

Specified by:
rollback in interface java.sql.Connection
Throws:
java.sql.SQLException - if there is an error rolling back.
See Also:
method for more information.

setAutoCommit

public void setAutoCommit(boolean autoCommit)
                   throws java.sql.SQLException

This method will set the connection's auto commit mode accordingly. By default this is set to true (auto-commit is turned on). An auto-commit value of true means any statements will automatically be made permanent if they are successful after the last row of the ReulstSet has been retrieved or the next execute occurs, whichever comes first. If set to false, changes can be either be committed (using the commit() method) or rolled back ("undo the changes" by using the rollback() method).

Specified by:
setAutoCommit in interface java.sql.Connection
Parameters:
boolean - value indicating if autoCommit is turned on
Throws:
java.sql.SQLException - is metamatrix access error occurs.

setCatalog

public void setCatalog(java.lang.String catalog)
                throws java.sql.SQLException

Metamatrix does not allow setting a catalog through a connection. This method silently ignores the request as per the specification.

Specified by:
setCatalog in interface java.sql.Connection
Parameters:
The - string values which sets the catalog name on the connection.
Throws:
java.sql.SQLException - This should never occur.

setReadOnly

public void setReadOnly(boolean readOnly)
                 throws java.sql.SQLException
Specified by:
setReadOnly in interface java.sql.Connection
Parameters:
A - boolean value specifying whether the connection is readonly.
Throws:
throws - SQLException.
java.sql.SQLException

commitTransaction

protected void commitTransaction(XidImpl arg0,
                                 boolean arg1)
                          throws java.sql.SQLException
Throws:
java.sql.SQLException

endTransaction

protected void endTransaction(XidImpl arg0,
                              int arg1)
                       throws java.sql.SQLException
Throws:
java.sql.SQLException

forgetTransaction

protected void forgetTransaction(XidImpl arg0)
                          throws java.sql.SQLException
Throws:
java.sql.SQLException

prepareTransaction

protected int prepareTransaction(XidImpl arg0)
                          throws java.sql.SQLException
Throws:
java.sql.SQLException

recoverTransaction

protected javax.transaction.xa.Xid[] recoverTransaction(int arg0)
                                                 throws java.sql.SQLException
Throws:
java.sql.SQLException

rollbackTransaction

protected void rollbackTransaction(XidImpl arg0)
                            throws java.sql.SQLException
Throws:
java.sql.SQLException

startTransaction

protected void startTransaction(XidImpl arg0,
                                int arg1,
                                int timeout)
                         throws java.sql.SQLException
Throws:
java.sql.SQLException

getTransactionXid

protected XidImpl getTransactionXid()

isValid

public boolean isValid(int timeout)
                throws java.sql.SQLException
Specified by:
isValid in interface java.sql.Connection
Throws:
java.sql.SQLException

recycleConnection

public void recycleConnection()

isSameProcess

public boolean isSameProcess(ConnectionImpl conn)
                      throws CommunicationException
Throws:
CommunicationException

setClientInfo

public void setClientInfo(java.util.Properties properties)
                   throws java.sql.SQLClientInfoException
Specified by:
setClientInfo in interface java.sql.Connection
Throws:
java.sql.SQLClientInfoException

setClientInfo

public void setClientInfo(java.lang.String name,
                          java.lang.String value)
                   throws java.sql.SQLClientInfoException
Specified by:
setClientInfo in interface java.sql.Connection
Throws:
java.sql.SQLClientInfoException

getClientInfo

public java.util.Properties getClientInfo()
                                   throws java.sql.SQLException
Specified by:
getClientInfo in interface java.sql.Connection
Throws:
java.sql.SQLException

getClientInfo

public java.lang.String getClientInfo(java.lang.String name)
                               throws java.sql.SQLException
Specified by:
getClientInfo in interface java.sql.Connection
Throws:
java.sql.SQLException

createArrayOf

public java.sql.Array createArrayOf(java.lang.String typeName,
                                    java.lang.Object[] elements)
                             throws java.sql.SQLException
Specified by:
createArrayOf in interface java.sql.Connection
Throws:
java.sql.SQLException

createBlob

public java.sql.Blob createBlob()
                         throws java.sql.SQLException
Specified by:
createBlob in interface java.sql.Connection
Throws:
java.sql.SQLException

createClob

public java.sql.Clob createClob()
                         throws java.sql.SQLException
Specified by:
createClob in interface java.sql.Connection
Throws:
java.sql.SQLException

createNClob

public java.sql.NClob createNClob()
                           throws java.sql.SQLException
Specified by:
createNClob in interface java.sql.Connection
Throws:
java.sql.SQLException

createSQLXML

public java.sql.SQLXML createSQLXML()
                             throws java.sql.SQLException
Specified by:
createSQLXML in interface java.sql.Connection
Throws:
java.sql.SQLException

createStatement

public java.sql.Statement createStatement(int resultSetType,
                                          int resultSetConcurrency,
                                          int resultSetHoldability)
                                   throws java.sql.SQLException
Specified by:
createStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

createStruct

public java.sql.Struct createStruct(java.lang.String typeName,
                                    java.lang.Object[] attributes)
                             throws java.sql.SQLException
Specified by:
createStruct in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql,
                                              int resultSetType,
                                              int resultSetConcurrency,
                                              int resultSetHoldability)
                                       throws java.sql.SQLException
Specified by:
prepareCall in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int autoGeneratedKeys)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int[] columnIndexes)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   java.lang.String[] columnNames)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection
Throws:
java.sql.SQLException

releaseSavepoint

public void releaseSavepoint(java.sql.Savepoint savepoint)
                      throws java.sql.SQLException
Specified by:
releaseSavepoint in interface java.sql.Connection
Throws:
java.sql.SQLException

rollback

public void rollback(java.sql.Savepoint savepoint)
              throws java.sql.SQLException
Specified by:
rollback in interface java.sql.Connection
Throws:
java.sql.SQLException

setHoldability

public void setHoldability(int holdability)
                    throws java.sql.SQLException
Specified by:
setHoldability in interface java.sql.Connection
Throws:
java.sql.SQLException

setSavepoint

public java.sql.Savepoint setSavepoint()
                                throws java.sql.SQLException
Specified by:
setSavepoint in interface java.sql.Connection
Throws:
java.sql.SQLException

setSavepoint

public java.sql.Savepoint setSavepoint(java.lang.String name)
                                throws java.sql.SQLException
Specified by:
setSavepoint in interface java.sql.Connection
Throws:
java.sql.SQLException

setTransactionIsolation

public void setTransactionIsolation(int level)
                             throws java.sql.SQLException
Specified by:
setTransactionIsolation in interface java.sql.Connection
Throws:
java.sql.SQLException

setTypeMap

public void setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>> map)
                throws java.sql.SQLException
Specified by:
setTypeMap in interface java.sql.Connection
Throws:
java.sql.SQLException


Copyright © 2010. All Rights Reserved.