|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.ziclix.python.sql.DataHandler
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.
Constructor Summary | |
DataHandler()
Handle most generic Java data types. |
Method Summary | |
PyObject |
__chain__()
Returns a list of datahandlers chained together through the use of delegation. |
static boolean |
checkNull(java.sql.PreparedStatement stmt,
int index,
PyObject object,
int type)
Handles checking if the object is null or None and setting it on the statement. |
java.lang.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(java.sql.CallableStatement stmt,
int col,
int type)
Given a CallableStatement, column and type, return the appropriate Jython object. |
PyObject |
getPyObject(java.sql.ResultSet set,
int col,
int type)
Given a ResultSet, column and type, return the appropriate Jython object. |
PyObject |
getRowId(java.sql.Statement stmt)
Returns the row id of the last executed statement. |
static DataHandler |
getSystemDataHandler()
Build the DataHandler chain depending on the VM. |
void |
postExecute(java.sql.Statement stmt)
A callback after successfully executing the statement. |
void |
preExecute(java.sql.Statement stmt)
A callback prior to each execution of the statement. |
static byte[] |
read(java.io.InputStream stream)
Since the driver needs to the know the length of all streams, read it into a byte[] array. |
static java.lang.String |
read(java.io.Reader reader)
Read all the chars from the Reader into the String. |
void |
registerOut(java.sql.CallableStatement statement,
int index,
int colType,
int dataType,
java.lang.String dataTypeName)
Called when a stored procedure or function is executed and OUT parameters need to be registered with the statement. |
void |
setJDBCObject(java.sql.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(java.sql.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. |
java.lang.String |
toString()
Returns the classname of this datahandler. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public DataHandler()
Method Detail |
public java.lang.String getMetaDataName(PyObject name)
public Procedure getProcedure(PyCursor cursor, PyObject name) throws java.sql.SQLException
cursor
- an open cursorname
- the name of the procedure to invoke
java.sql.SQLException
public PyObject getRowId(java.sql.Statement stmt) throws java.sql.SQLException
stmt
- the current statement
java.sql.SQLException
- thrown if an exception occurspublic void preExecute(java.sql.Statement stmt) throws java.sql.SQLException
java.sql.SQLException
public void postExecute(java.sql.Statement stmt) throws java.sql.SQLException
java.sql.SQLException
public void setJDBCObject(java.sql.PreparedStatement stmt, int index, PyObject object) throws java.sql.SQLException
stmt
- the current PreparedStatementindex
- the index for which this object is boundobject
- the PyObject in question
java.sql.SQLException
public void setJDBCObject(java.sql.PreparedStatement stmt, int index, PyObject object, int type) throws java.sql.SQLException
stmt
- the current PreparedStatementindex
- the index for which this object is boundobject
- the PyObject in questiontype
- the java.sql.Types for which this PyObject should be bound
java.sql.SQLException
public PyObject getPyObject(java.sql.ResultSet set, int col, int type) throws java.sql.SQLException
Note: DO NOT iterate the ResultSet.
set
- the current ResultSet set to the current rowcol
- the column number (adjusted properly for JDBC)type
- the column type
java.sql.SQLException
- if the type is unmappablepublic PyObject getPyObject(java.sql.CallableStatement stmt, int col, int type) throws java.sql.SQLException
stmt
- the CallableStatementcol
- the column number (adjusted properly for JDBC)type
- the column type
java.sql.SQLException
- if the type is unmappablepublic void registerOut(java.sql.CallableStatement statement, int index, int colType, int dataType, java.lang.String dataTypeName) throws java.sql.SQLException
statement
- index
- the JDBC offset column numbercolType
- the column as from DatabaseMetaData (eg, procedureColumnOut)dataType
- the JDBC datatype from TypesdataTypeName
- the JDBC datatype name
java.sql.SQLException
public static final boolean checkNull(java.sql.PreparedStatement stmt, int index, PyObject object, int type) throws java.sql.SQLException
java.sql.SQLException
public static final byte[] read(java.io.InputStream stream)
public static final java.lang.String read(java.io.Reader reader)
public static final DataHandler getSystemDataHandler()
public PyObject __chain__()
public java.lang.String toString()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |