|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.ibm.di.connector.Connector
com.ibm.di.connector.JDBCConnector
public class JDBCConnector
This connector provides access to JDBC/ODBC based systems. The connector will attempt to perform as much conversion between types as possible.
Field Summary | |
---|---|
static java.lang.String[] |
CONNECTOR_MODES
Possible Connector modes. |
static java.lang.String |
VERSION_INFO
The Connector version. |
Fields inherited from class com.ibm.di.connector.Connector |
---|
ALL_MODES, myLog, PROPERTY_MESSAGE, PROPERTY_READER, PROPERTY_WRITER |
Constructor Summary | |
---|---|
JDBCConnector()
Constructor |
Method Summary | |
---|---|
void |
alterSession(java.lang.String command)
Create a ALTER SESSION Sql statement, and execute it. |
void |
commit()
Commit the last transactions |
void |
deleteEntry(Entry entry,
SearchCriteria search)
Deletes an existing entry. |
java.lang.String |
execSQL(java.lang.String sql)
Executes an SQL statement. |
java.lang.String |
execSQLSelect(java.lang.String sql)
Executes an SQL statement, the returned values can be retrieved using getNextSQLSelectEntry() |
void |
extractExceptionInformation(Entry error)
Extracts additional information about a connector specific exception. |
Entry |
findEntry(SearchCriteria search)
Finds an existing entry. |
java.sql.Connection |
getConnection()
Returns the Connection handle for the currently open session. |
java.lang.String |
getLastSqlString()
Returns the last SQL String used. |
Entry |
getNextEntry()
Gets the nextEntry attribute of the JDBCConnector object |
Entry |
getNextSQLSelectEntry()
Gets the nextSQLSelectEntry entry |
int |
getNumSkipLookupAffected()
Returns the number of affected entries after skipping lookup |
boolean |
getParameterSubstitution()
Returns value of enableParamSubstitute parameter |
java.lang.String |
getPreparedString()
Returns the last String used to construct a PreparedStatement. |
java.sql.Statement |
getStatement()
Returns the Statement handle for the currently open session |
java.lang.String |
getSubClause(SearchCriteria.rscSearch rs,
boolean ps)
Constructs an SQL where expression from an rscSearch class. |
java.lang.String |
getVersion()
Return version information |
java.lang.String |
getWhereClause(SearchCriteria search,
boolean ps)
Creates where clause for SQL statement |
void |
initialize(java.lang.Object o)
Initialize the connector and discover syntax |
boolean |
isDeltaSupported()
Returns true if this connector is able to perform delta updates |
boolean |
isEOCflag()
Checks whether the end of cycle is reached |
boolean |
isInsertPaddingDisabled()
Returns true if padding is disabled for insert |
boolean |
isIOException(java.lang.Throwable e)
Method checks exception type |
boolean |
isLookupPaddingDisabled()
Returns true if padding is disabled for lookup |
boolean |
isMSSqlServerDB()
Returns true if the DB is a isMSSqlServerDB database |
boolean |
isUpdatePaddingDisabled()
Returns true if padding is disabled for update |
void |
modEntry(Entry entry,
SearchCriteria search)
Modifies an existing entry. |
void |
putEntry(Entry entry)
Adds a new entry. |
java.lang.Object |
querySchema(java.lang.Object table)
Query for schema of table |
java.util.Vector<java.lang.String> |
queryTables()
Queries for list Of tables |
void |
rollback()
Rolls back the transactions since the last commit |
void |
saveMetaData(java.sql.ResultSetMetaData md)
Saves the Meta Data info |
void |
selectEntries()
Prepares for getNextEntry(). |
boolean |
setCommitMode(java.lang.String mode)
Set the commit behavior of this JDBC Connector. |
void |
setCurrent(Entry entry,
SearchCriteria search)
Change the SearchCriteria search to find the entry sent as a parameter. |
void |
setEOCflag(boolean eoc)
Sets the EOC flag |
void |
setPaddingInInsert(boolean val)
Enables and disables the padding while insert |
void |
setPaddingInLookup(boolean val)
Enables and disables the padding while lookup |
void |
setPaddingInUpdate(boolean val)
Enables and disables the padding while update |
void |
setParameterSubstitution(boolean val)
set enableParamSubstitute parameter |
java.sql.PreparedStatement |
setPreparedDeleteStatement(java.lang.String preparedSql)
Sets a prepared statement for future calls to deleteEntry(). |
java.sql.PreparedStatement |
setPreparedFindStatement(java.lang.String preparedSql)
Sets a prepared statement for future calls to findEntries(). |
java.sql.PreparedStatement |
setPreparedInsertStatement(java.lang.String preparedSql)
Sets a prepared statement for future calls to putEntry(). |
java.sql.PreparedStatement |
setPreparedModifyStatement(java.lang.String preparedSql)
Sets a prepared statement for future calls to modEntry(). |
java.sql.PreparedStatement |
setPreparedSelectStatement(java.lang.String preparedSql)
Sets a prepared statement for future calls to selectEntries(). |
void |
setResultSet(java.sql.ResultSet rs)
Instructs this connector to use the provided result set instead of its own. |
void |
setSessionParameters()
Sets the sessionParameters attribute of the JDBCConnector object |
java.lang.String |
sqlValue(java.lang.String name,
java.lang.Object value,
boolean padString)
Converts java type to SQL type |
void |
terminate()
terminate - close handles and connections |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.ibm.di.connector.ConnectorInterface |
---|
getConfiguration, getContext, getFindEntryCount, getFirstFindEntry, getMaxDuplicateEntries, getName, getNextClient, getNextFindEntry, getParam, getPushbackEntry, getRawConnectorConfiguration, isExceptionFatal, modEntry, pushback, queryOperations, queryReply, reconnect, registerScriptBeans, replyEntry, setConfiguration, setContext, setLog, setMaxDuplicateEntries, setName, setParam, setRSInterface, terminateServer |
Field Detail |
---|
public static final java.lang.String VERSION_INFO
public static final java.lang.String[] CONNECTOR_MODES
Constructor Detail |
---|
public JDBCConnector()
Method Detail |
---|
public void initialize(java.lang.Object o) throws java.lang.Exception
initialize
in interface ConnectorInterface
initialize
in class Connector
o
- Ignored
java.lang.Exception
- Throws exception if required JDBC parameters are not set.public void setSessionParameters() throws java.sql.SQLException
java.sql.SQLException
- Contains exception thrown during database operationspublic void alterSession(java.lang.String command) throws java.sql.SQLException
command
- The rest of the ALTER SESSION statement
java.sql.SQLException
- Contains exception thrown during database operationspublic boolean isDeltaSupported()
isDeltaSupported
in interface ConnectorInterface
isDeltaSupported
in class Connector
public boolean isIOException(java.lang.Throwable e)
isIOException
in interface ConnectorInterface
isIOException
in class Connector
e
- Exception
public void terminate()
terminate
in interface ConnectorInterface
terminate
in class Connector
public void selectEntries() throws java.lang.Exception
selectEntries
in interface ConnectorInterface
selectEntries
in class Connector
java.lang.Exception
- Exception thrown during database operationsgetNextEntry()
public Entry getNextEntry() throws java.lang.Exception
getNextEntry
in interface ConnectorInterface
getNextEntry
in class Connector
java.lang.Exception
- Exception thrown during database operationsConnectorInterface.selectEntries()
public void setPaddingInInsert(boolean val)
val
- public void setPaddingInLookup(boolean val)
val
- value to setpublic void setPaddingInUpdate(boolean val)
val
- value to setpublic boolean isLookupPaddingDisabled()
public boolean isUpdatePaddingDisabled()
public boolean isInsertPaddingDisabled()
public Entry findEntry(SearchCriteria search) throws java.lang.Exception
findEntry
in interface ConnectorInterface
findEntry
in class Connector
search
- The search criteria used to locate the entry to be modified
java.lang.Exception
- derived from the connector's underlying classespublic void modEntry(Entry entry, SearchCriteria search) throws java.lang.Exception
modEntry
in interface ConnectorInterface
modEntry
in class Connector
entry
- The entry datasearch
- The search criteria used to locate the entry to be modified
java.lang.Exception
- Any exceptions thrown by the connector's underlying
classespublic void putEntry(Entry entry) throws java.lang.Exception
putEntry
in interface ConnectorInterface
putEntry
in class Connector
entry
- The entry object
java.lang.Exception
- Any exceptions thrown by the connector's underlying
classespublic void deleteEntry(Entry entry, SearchCriteria search) throws java.lang.Exception
deleteEntry
in interface ConnectorInterface
deleteEntry
in class Connector
entry
- The entry datasearch
- The search criteria used to locate the entry to be modified
java.lang.Exception
- derived from the connector's underlying classespublic java.lang.String execSQL(java.lang.String sql)
sql
- The SQL statement to execute
public java.lang.String execSQLSelect(java.lang.String sql)
sql
- The SQL statement to execute
public Entry getNextSQLSelectEntry() throws java.lang.Exception
java.lang.Exception
- if an error occursexecSQLSelect(java.lang.String)
public void commit() throws java.sql.SQLException
java.sql.SQLException
- Thrown if an error occurspublic void rollback() throws java.sql.SQLException
java.sql.SQLException
- Thrown if an error occurscommit()
,
setCommitMode(java.lang.String)
public boolean setCommitMode(java.lang.String mode)
mode
- The intended behavior. Possible values are:
commit()
public java.util.Vector<java.lang.String> queryTables() throws java.lang.Exception
queryTables
in class Connector
java.lang.Exception
- Thrown if error occursVector
public java.lang.Object querySchema(java.lang.Object table) throws java.lang.Exception
querySchema
in interface ConnectorInterface
querySchema
in class Connector
table
- Entry object
java.lang.Exception
- Thrown if error occursEntry
,
Vector
public java.sql.Statement getStatement()
public void setResultSet(java.sql.ResultSet rs) throws java.lang.Exception
rs
- The new resultSet value
java.lang.Exception
- Thrown if error occurspublic java.sql.Connection getConnection()
public java.lang.String getWhereClause(SearchCriteria search, boolean ps) throws java.lang.Exception
search
- SearchCriteriaps
- Boolean which determines if is a prepared statement.
java.lang.Exception
- Thrown if error occurspublic java.lang.String getSubClause(SearchCriteria.rscSearch rs, boolean ps) throws java.lang.Exception
rs
- search criteriaps
- Boolean which determines if it is a prepared statement.
java.lang.Exception
public java.lang.String sqlValue(java.lang.String name, java.lang.Object value, boolean padString)
name
- name of the typevalue
- typepadString
- true if padding enabled
public void saveMetaData(java.sql.ResultSetMetaData md) throws java.sql.SQLException
md
- ResultSetMetaData
java.sql.SQLException
- Thrown if there is an errorpublic void setCurrent(Entry entry, SearchCriteria search)
setCurrent
in interface ConnectorInterface
setCurrent
in class Connector
entry
- The entry we want to find for modification/deletesearch
- The SearchCriteria we want to changepublic java.lang.String getVersion()
getVersion
in interface VersionInfoInterface
public void setParameterSubstitution(boolean val)
val
- true if parameter substitution is enabledpublic boolean getParameterSubstitution()
public int getNumSkipLookupAffected()
getNumSkipLookupAffected
in interface SkipLookupInterface
public boolean isEOCflag()
public void setEOCflag(boolean eoc)
eoc
- true if EOC is reachedpublic java.sql.PreparedStatement setPreparedSelectStatement(java.lang.String preparedSql) throws java.lang.Exception
ps = thisConnector.connector.setPreparedSelectStatement("Select * from tableName where fieldName = ? and field2= ?") ps.setInteger(1, someValue) ps.setObject(2, someObject)Once setPreparedSelectStatement is called, that PreparedStatement will be used for every selectEntries() from then on. Calling the method with null as parameter could reset the behavior to using the GUI defined parameters.
preparedSql
- The prepared statement (string) to use.
java.sql.SQLException
- if the PreparedStatement could not be created
java.lang.Exception
public java.sql.PreparedStatement setPreparedFindStatement(java.lang.String preparedSql) throws java.lang.Exception
ps = thisConnector.connector.setPreparedFindStatement("Select * from tableName where fieldName = ? and field2= ?")And this code could be put in the Before Lookup Hook:
ps.setInteger(1, someValue) ps.setObject(2, someObject)Once setPreparedFindStatement is called, that PreparedStatement will be used for every findEntries() from then on, effectively overriding any Link Criteria. Calling the method with null as parameter could reset the behavior to using the GUI defined parameters.
preparedSql
- The prepared statement (string) to use.
java.sql.SQLException
- if the PreparedStatement could not be created
java.lang.Exception
public java.sql.PreparedStatement setPreparedModifyStatement(java.lang.String preparedSql) throws java.lang.Exception
ps = thisConnector.connector.setPreparedModifyStatement("UPDATE tableName SET fieldName1 = ?, field2 = ? WHERE field3 = ?") ps.setTime(1, conn.fieldName1) ps.setObject(2, conn.field2) ps.setInteger(3, conn.field3)Once setPreparedModifyStatement is called, that PreparedStatement will be used for every modEntry() from then on, effectively overriding any Link Criteria, and also ignoring all values in the conn Entry. Calling the method with null as parameter will reset the behavior to using the GUI defined parameters.
preparedSql
- The prepared statement (string) to use.
java.sql.SQLException
- if the PreparedStatement could not be created
java.lang.Exception
public java.sql.PreparedStatement setPreparedInsertStatement(java.lang.String preparedSql) throws java.lang.Exception
ps = thisConnector.connector.setPreparedInsertStatement("INSERT into tableName (fieldName1,field2,field3) VALUES (?,?,?)") ps.setString(1, conn.fieldName1) ps.setObject(2, conn.field2) ps.setInteger(3, conn.field3)Once setPreparedInsertStatement is called, that PreparedStatement will be used for every putEntry() from then on, effectively ignoring all values in the conn Entry. Calling the method with null as parameter will reset the behavior to using the GUI defined parameters.
preparedSql
- The prepared statement (string) to use.
java.sql.SQLException
- if the PreparedStatement could not be created
java.lang.Exception
public java.sql.PreparedStatement setPreparedDeleteStatement(java.lang.String preparedSql) throws java.lang.Exception
ps = thisConnector.connector.setPreparedDeleteStatement("DELETE from tableName where fieldName1 = ? and field2 = ?") ps.setTime(1, conn.fieldName1) ps.setObject(2, conn.field2)Here is an example showing how to delete several Entries:
ps = thisConnector.connector.setPreparedDeleteStatement("DELETE from tableName where fieldName1 = ? and field2 = ?") while (...) { ps.setTime(1, ...) ps.setObject(2, ...) thisConnector.connector.deleteEntry(null); //No need to provide an Entry when using prepared statement } thisConnector.connector.setPreparedDeleteStatement(null)Once setPreparedDeleteStatement has been called, that PreparedStatement will be used for every deleteEntry() from then on, effectively overriding any Link Criteria. Calling the method with null as parameter will reset the behavior to using the GUI defined parameters.
preparedSql
- The prepared statement (string) to use.
java.sql.SQLException
- if the PreparedStatement could not be created
java.lang.Exception
public java.lang.String getPreparedString()
ps = thisConnector.connector.getPreparedString(); task.logmsg("The Prepared Statement was :\n" + ps);
public boolean isMSSqlServerDB()
public void extractExceptionInformation(Entry error)
Connector
error
Entry.
The default behavior is to do nothing.
extractExceptionInformation
in class Connector
error
- an Entry object containing the exception in its "exception"
attribute.public java.lang.String getLastSqlString()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |