| java.lang.Object com.ziclix.python.sql.DataHandler
All known Subclasses: com.ziclix.python.sql.FilterDataHandler,
DataHandler | public class DataHandler (Code) | | The DataHandler is responsible mapping the JDBC data type to
a Jython object. Depending on the version of the JDBC
implementation and the particulars of the driver, the type
mapping can be significantly different.
This interface can also be used to change the behaviour of
the default mappings provided by the cursor. This might be
useful in handling more complicated data types such as BLOBs,
CLOBs and Arrays.
author: brian zimmer author: last revised by $Author: kzuberi $ version: $Revision: 2939 $ |
Constructor Summary | |
public | DataHandler() Handle most generic Java data types. |
Method Summary | |
public PyObject | __chain__() Returns a list of datahandlers chained together through the use of delegation. | final public static boolean | checkNull(PreparedStatement stmt, int index, PyObject object, int type) Handles checking if the object is null or None and setting it on the statement. | public String | getMetaDataName(PyObject name) Some database vendors are case sensitive on calls to DatabaseMetaData,
most notably Oracle. | public Procedure | getProcedure(PyCursor cursor, PyObject name) A factory method for determing the correct procedure class to use
per the cursor type. | public PyObject | getPyObject(ResultSet set, int col, int type) Given a ResultSet, column and type, return the appropriate
Jython object. | public PyObject | getPyObject(CallableStatement stmt, int col, int type) Given a CallableStatement, column and type, return the appropriate
Jython object. | public PyObject | getRowId(Statement stmt) Returns the row id of the last executed statement. | final public static DataHandler | getSystemDataHandler() Build the DataHandler chain depending on the VM. | public void | postExecute(Statement stmt) A callback after successfully executing the statement. | public void | preExecute(Statement stmt) A callback prior to each execution of the statement. | final public static byte[] | read(InputStream stream) Since the driver needs to the know the length of all streams,
read it into a byte[] array. | final public static String | read(Reader reader) Read all the chars from the Reader into the String. | public void | registerOut(CallableStatement statement, int index, int colType, int dataType, String dataTypeName) Called when a stored procedure or function is executed and OUT parameters
need to be registered with the statement. | public void | setJDBCObject(PreparedStatement stmt, int index, PyObject object) Any .execute() which uses prepared statements will receive a callback for deciding
how to map the PyObject to the appropriate JDBC type. | public void | setJDBCObject(PreparedStatement stmt, int index, PyObject object, int type) Any .execute() which uses prepared statements will receive a callback for deciding
how to map the PyObject to the appropriate JDBC type. | public String | toString() Returns the classname of this datahandler. |
DataHandler | public DataHandler()(Code) | | Handle most generic Java data types.
|
__chain__ | public PyObject __chain__()(Code) | | Returns a list of datahandlers chained together through the use of delegation.
a list of datahandlers |
checkNull | final public static boolean checkNull(PreparedStatement stmt, int index, PyObject object, int type) throws SQLException(Code) | | Handles checking if the object is null or None and setting it on the statement.
true if the object is null and was set on the statement, false otherwise |
getMetaDataName | public String getMetaDataName(PyObject name)(Code) | | Some database vendors are case sensitive on calls to DatabaseMetaData,
most notably Oracle. This callback allows a DataHandler to affect the
name.
|
getProcedure | public Procedure getProcedure(PyCursor cursor, PyObject name) throws SQLException(Code) | | A factory method for determing the correct procedure class to use
per the cursor type.
Parameters: cursor - an open cursor Parameters: name - the name of the procedure to invoke an instance of a Procedure throws: SQLException - |
getPyObject | public PyObject getPyObject(ResultSet set, int col, int type) throws SQLException(Code) | | Given a ResultSet, column and type, return the appropriate
Jython object.
Note: DO NOT iterate the ResultSet.
Parameters: set - the current ResultSet set to the current row Parameters: col - the column number (adjusted properly for JDBC) Parameters: type - the column type throws: SQLException - if the type is unmappable |
getPyObject | public PyObject getPyObject(CallableStatement stmt, int col, int type) throws SQLException(Code) | | Given a CallableStatement, column and type, return the appropriate
Jython object.
Parameters: stmt - the CallableStatement Parameters: col - the column number (adjusted properly for JDBC) Parameters: type - the column type throws: SQLException - if the type is unmappable |
getRowId | public PyObject getRowId(Statement stmt) throws SQLException(Code) | | Returns the row id of the last executed statement.
Parameters: stmt - the current statement the row id of the last executed statement or None throws: SQLException - thrown if an exception occurs |
getSystemDataHandler | final public static DataHandler getSystemDataHandler()(Code) | | Build the DataHandler chain depending on the VM. This guarentees a DataHandler
but might additionally chain a JDBC2.0 or JDBC3.0 implementation.
a DataHandler configured for the VM version |
preExecute | public void preExecute(Statement stmt) throws SQLException(Code) | | A callback prior to each execution of the statement. If the statement is
a PreparedStatement, all the parameters will have been set.
|
read | final public static byte[] read(InputStream stream)(Code) | | Since the driver needs to the know the length of all streams,
read it into a byte[] array.
the stream as a byte[] |
read | final public static String read(Reader reader)(Code) | | Read all the chars from the Reader into the String.
the contents of the Reader in a String |
registerOut | public void registerOut(CallableStatement statement, int index, int colType, int dataType, String dataTypeName) throws SQLException(Code) | | Called when a stored procedure or function is executed and OUT parameters
need to be registered with the statement.
Parameters: statement - Parameters: index - the JDBC offset column number Parameters: colType - the column as from DatabaseMetaData (eg, procedureColumnOut) Parameters: dataType - the JDBC datatype from Types Parameters: dataTypeName - the JDBC datatype name throws: SQLException - |
setJDBCObject | public void setJDBCObject(PreparedStatement stmt, int index, PyObject object) throws SQLException(Code) | | Any .execute() which uses prepared statements will receive a callback for deciding
how to map the PyObject to the appropriate JDBC type.
Parameters: stmt - the current PreparedStatement Parameters: index - the index for which this object is bound Parameters: object - the PyObject in question throws: SQLException - |
setJDBCObject | public void setJDBCObject(PreparedStatement stmt, int index, PyObject object, int type) throws SQLException(Code) | | Any .execute() which uses prepared statements will receive a callback for deciding
how to map the PyObject to the appropriate JDBC type. The type is the JDBC
type as obtained from java.sql.Types.
Parameters: stmt - the current PreparedStatement Parameters: index - the index for which this object is bound Parameters: object - the PyObject in question Parameters: type - the java.sql.Types for which this PyObject should be bound throws: SQLException - |
toString | public String toString()(Code) | | Returns the classname of this datahandler.
|
|
|