Top Description Constructors Methods
com.ziclix.python.sql

public Class Jython22DataHandler

extends DataHandler
Class Inheritance
Imports
java.io.BufferedInputStream, .BufferedReader, .InputStream, .Reader, .StringReader, java.math.BigDecimal, java.sql.CallableStatement, .Date, .PreparedStatement, .ResultSet, .SQLException, .Statement, .Time, .Timestamp, .Types, org.python.core.Py, .PyFile, .PyList, .PyLong, .PyObject, org.python.core.util.StringUtil

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.
Author
brian zimmer

Constructor Summary

AccessConstructor and Description
public
Jython22DataHandler()

Handle most generic Java data types.

Method Summary

Modifier and TypeMethod and Description
public PyObject

Returns:

a list of datahandlers
__chain__
()

Overrides com.ziclix.python.sql.DataHandler.__chain__.

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

public String
getMetaDataName(PyObject name)

Overrides com.ziclix.python.sql.DataHandler.getMetaDataName.

Some database vendors are case sensitive on calls to DatabaseMetaData, most notably Oracle.

public Procedure

Returns:

an instance of a Procedure
getProcedure
(PyCursor
an open cursor
cursor
,
PyObject
the name of the procedure to invoke
name
)

Overrides com.ziclix.python.sql.DataHandler.getProcedure.

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

public PyObject
getPyObject(ResultSet
the current ResultSet set to the current row
set
,
int
the column number (adjusted properly for JDBC)
col
,
int
the column type
type
)

Overrides com.ziclix.python.sql.DataHandler.getPyObject.

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

public PyObject
getPyObject(CallableStatement
the CallableStatement
stmt
,
int
the column number (adjusted properly for JDBC)
col
,
int
the column type
type
)

Overrides com.ziclix.python.sql.DataHandler.getPyObject.

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

public PyObject

Returns:

the row id of the last executed statement or None
getRowId
(Statement
the current statement
stmt
)

Overrides com.ziclix.python.sql.DataHandler.getRowId.

Returns the row id of the last executed statement.

public void
postExecute(Statement stmt)

Overrides com.ziclix.python.sql.DataHandler.postExecute.

A callback after successfully executing the statement.

public void
preExecute(Statement stmt)

Overrides com.ziclix.python.sql.DataHandler.preExecute.

A callback prior to each execution of the statement.

public void
registerOut(CallableStatement statement, int
the JDBC offset column number
index
,
int
the column as from DatabaseMetaData (eg, procedureColumnOut)
colType
,
int
the JDBC datatype from Types
dataType
,
String
the JDBC datatype name
dataTypeName
)

Overrides com.ziclix.python.sql.DataHandler.registerOut.

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

public void
setJDBCObject(PreparedStatement
the current PreparedStatement
stmt
,
int
the index for which this object is bound
index
,
PyObject
the PyObject in question
object
)

Overrides com.ziclix.python.sql.DataHandler.setJDBCObject.

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
the current PreparedStatement
stmt
,
int
the index for which this object is bound
index
,
PyObject
the PyObject in question
object
,
int
the java.sql.Types for which this PyObject should be bound
type
)

Overrides com.ziclix.python.sql.DataHandler.setJDBCObject.

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

Inherited from com.ziclix.python.sql.DataHandler:
checkNullcreateUnsupportedTypeSQLExceptiongetSystemDataHandlerreadreadtoString

Constructor Detail

Jython22DataHandlerback to summary
public Jython22DataHandler()

Handle most generic Java data types.

Method Detail

__chain__back to summary
public PyObject __chain__()

Overrides com.ziclix.python.sql.DataHandler.__chain__.

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

Returns:PyObject

a list of datahandlers

Annotations
@Override

getMetaDataNameback to summary
public String getMetaDataName(PyObject name)

Overrides com.ziclix.python.sql.DataHandler.getMetaDataName.

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

Annotations
@Override
getProcedureback to summary
public Procedure getProcedure(PyCursor cursor, PyObject name) throws SQLException

Overrides com.ziclix.python.sql.DataHandler.getProcedure.

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

Parameters
cursor:PyCursor

an open cursor

name:PyObject

the name of the procedure to invoke

Returns:Procedure

an instance of a Procedure

Annotations
@Override

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

Overrides com.ziclix.python.sql.DataHandler.getPyObject.

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

Note

DO NOT iterate the ResultSet.

Parameters
set:ResultSet

the current ResultSet set to the current row

col:int

the column number (adjusted properly for JDBC)

type:int

the column type

Annotations
@Override
@SuppressWarnings:deprecation
Exceptions
SQLException:
if the type is unmappable
getPyObjectback to summary
public PyObject getPyObject(CallableStatement stmt, int col, int type) throws SQLException

Overrides com.ziclix.python.sql.DataHandler.getPyObject.

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

Parameters
stmt:CallableStatement

the CallableStatement

col:int

the column number (adjusted properly for JDBC)

type:int

the column type

Annotations
@Override
@SuppressWarnings:deprecation
Exceptions
SQLException:
if the type is unmappable
getRowIdback to summary
public PyObject getRowId(Statement stmt) throws SQLException

Overrides com.ziclix.python.sql.DataHandler.getRowId.

Returns the row id of the last executed statement.

Parameters
stmt:Statement

the current statement

Returns:PyObject

the row id of the last executed statement or None

Annotations
@Override
Exceptions
SQLException:
thrown if an exception occurs

postExecuteback to summary
public void postExecute(Statement stmt) throws SQLException

Overrides com.ziclix.python.sql.DataHandler.postExecute.

A callback after successfully executing the statement.

Annotations
@Override
preExecuteback to summary
public void preExecute(Statement stmt) throws SQLException

Overrides com.ziclix.python.sql.DataHandler.preExecute.

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

Annotations
@Override
registerOutback to summary
public void registerOut(CallableStatement statement, int index, int colType, int dataType, String dataTypeName) throws SQLException

Overrides com.ziclix.python.sql.DataHandler.registerOut.

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

Parameters
index:int

the JDBC offset column number

colType:int

the column as from DatabaseMetaData (eg, procedureColumnOut)

dataType:int

the JDBC datatype from Types

dataTypeName:String

the JDBC datatype name

Annotations
@Override
setJDBCObjectback to summary
public void setJDBCObject(PreparedStatement stmt, int index, PyObject object) throws SQLException

Overrides com.ziclix.python.sql.DataHandler.setJDBCObject.

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

Parameters
stmt:PreparedStatement

the current PreparedStatement

index:int

the index for which this object is bound

object:PyObject

the PyObject in question

Annotations
@Override
setJDBCObjectback to summary
public void setJDBCObject(PreparedStatement stmt, int index, PyObject object, int type) throws SQLException

Overrides com.ziclix.python.sql.DataHandler.setJDBCObject.

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:PreparedStatement

the current PreparedStatement

index:int

the index for which this object is bound

object:PyObject

the PyObject in question

type:int

the java.sql.Types for which this PyObject should be bound

Annotations
@Override