## com.ziclix.python.sql
Class Jython22DataHandler

    java.lang.Object
      com.ziclix.python.sql.DataHandler
          com.ziclix.python.sql.Jython22DataHandler

    public class Jython22DataHandler

extends DataHandler

A copy of the DataHandler class as it was before Jython 2.5. By that version, some backward-incompatible changes was made, as returning datetime.* objects for DATE, TIME and TIMESTAMP columns, instead of java.sql.* classes.

Version:
  $Revision: 3708 $
Author:
  brian zimmer, last revised by $Author: pjenvey $

Constructor Summary
`Jython22DataHandler()` Handle most generic Java data types.

Method Summary
`PyObject` `__chain__()` Returns a list of datahandlers chained together through the use of delegation.
`String` `getMetaDataName(PyObject name)` Some database vendors are case sensitive on calls to DatabaseMetaData, most notably Oracle.
`Procedure` `getProcedure(PyCursor cursor, PyObject name)` A factory method for determing the correct procedure class to use per the cursor type.
`PyObject` `getPyObject(CallableStatement stmt, int col, int type)` Given a CallableStatement, column and type, return the appropriate Jython object.
`PyObject` `getPyObject(ResultSet set, int col, int type)` Given a ResultSet, column and type, return the appropriate Jython object.
`PyObject` `getRowId(Statement stmt)` Returns the row id of the last executed statement.
`void` `postExecute(Statement stmt)` A callback after successfully executing the statement.
`void` `preExecute(Statement stmt)` A callback prior to each execution of the statement.
`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.
`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.
`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.

Methods inherited from class com.ziclix.python.sql.DataHandler
`checkNull, getSystemDataHandler, read, read, toString`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Jython22DataHandler

    public Jython22DataHandler()

  Handle most generic Java data types.

Method Detail

### getMetaDataName

    public String getMetaDataName(PyObject name)

  Some database vendors are case sensitive on calls to DatabaseMetaData, most notably Oracle. This callback allows a DataHandler to affect the name.

  Overrides:
    `getMetaDataName` in class `DataHandler`

### getProcedure

    public Procedure getProcedure(PyCursor cursor,
                                  PyObject name)
                           throws SQLException

  A factory method for determing the correct procedure class to use per the cursor type.

  Overrides:
    `getProcedure` in class `DataHandler`
  Parameters:
    `cursor` - an open cursor
    `name` - the name of the procedure to invoke
  Returns:
    an instance of a Procedure
  Throws:
    `SQLException`

### getRowId

    public PyObject getRowId(Statement stmt)
                      throws SQLException

  Returns the row id of the last executed statement.

  Overrides:
    `getRowId` in class `DataHandler`
  Parameters:
    `stmt` - the current statement
  Returns:
    the row id of the last executed statement or None
  Throws:
    `SQLException` - thrown if an exception occurs

### preExecute

    public void preExecute(Statement stmt)
                    throws SQLException

  A callback prior to each execution of the statement. If the statement is a PreparedStatement, all the parameters will have been set.

  Overrides:
    `preExecute` in class `DataHandler`
  Throws:
    `SQLException`

### postExecute

    public void postExecute(Statement stmt)
                     throws SQLException

  A callback after successfully executing the statement.

  Overrides:
    `postExecute` in class `DataHandler`
  Throws:
    `SQLException`

### setJDBCObject

    public void setJDBCObject(PreparedStatement stmt,
                              int index,
                              PyObject object)
                       throws SQLException

  Any .execute() which uses prepared statements will receive a callback for deciding how to map the PyObject to the appropriate JDBC type.

  Overrides:
    `setJDBCObject` in class `DataHandler`
  Parameters:
    `stmt` - the current PreparedStatement
    `index` - the index for which this object is bound
    `object` - the PyObject in question
  Throws:
    `SQLException`

### setJDBCObject

    public void setJDBCObject(PreparedStatement stmt,
                              int index,
                              PyObject object,
                              int type)
                       throws SQLException

  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.

  Overrides:
    `setJDBCObject` in class `DataHandler`
  Parameters:
    `stmt` - the current PreparedStatement
    `index` - the index for which this object is bound
    `object` - the PyObject in question
    `type` - the java.sql.Types for which this PyObject should be bound
  Throws:
    `SQLException`

### getPyObject

    public PyObject getPyObject(ResultSet set,
                                int col,
                                int type)
                         throws SQLException

  Given a ResultSet, column and type, return the appropriate Jython object.

  Note: DO NOT iterate the ResultSet.

  Overrides:
    `getPyObject` in class `DataHandler`
  Parameters:
    `set` - the current ResultSet set to the current row
    `col` - the column number (adjusted properly for JDBC)
    `type` - the column type
  Throws:
    `SQLException` - if the type is unmappable

### getPyObject

    public PyObject getPyObject(CallableStatement stmt,
                                int col,
                                int type)
                         throws SQLException

  Given a CallableStatement, column and type, return the appropriate Jython object.

  Overrides:
    `getPyObject` in class `DataHandler`
  Parameters:
    `stmt` - the CallableStatement
    `col` - the column number (adjusted properly for JDBC)
    `type` - the column type
  Throws:
    `SQLException` - if the type is unmappable

### registerOut

    public void registerOut(CallableStatement statement,
                            int index,
                            int colType,
                            int dataType,
                            String dataTypeName)
                     throws SQLException

  Called when a stored procedure or function is executed and OUT parameters need to be registered with the statement.

  Overrides:
    `registerOut` in class `DataHandler`
  Parameters:
    `statement` -
    `index` - the JDBC offset column number
    `colType` - the column as from DatabaseMetaData (eg, procedureColumnOut)
    `dataType` - the JDBC datatype from Types
    `dataTypeName` - the JDBC datatype name
  Throws:
    `SQLException`

### __chain__

    public PyObject __chain__()

  Returns a list of datahandlers chained together through the use of delegation.

  Overrides:
    `__chain__` in class `DataHandler`
  Returns:
    a list of datahandlers

Jython homepage