/*** The TypeHandler for Oracle JDBC Driver, which fix the
* "oracle.sql.TIMESTAMP ClassCastException" problem
*
*@authormatianyi
**/publicclassOracleObjectTypeHandlerextendsBaseTypeHandlerimplementsTypeHandler {/***@seeTypeHandler#setParameter(PreparedStatement, int, Object, String)*/publicvoidsetParameter(PreparedStatement ps,inti, Object parameter, String jdbcType)throwsSQLException {
ps.setObject(i, parameter);
}/***@seeTypeHandler#getResult(ResultSet, String)*/publicObject getResult(ResultSet rs, String columnName)throwsSQLException {
Object object=rs.getObject(columnName);if(rs.wasNull()) {returnnull;
}else{returnfix(object);
}
}/***@seeTypeHandler#getResult(ResultSet, int)*/publicObject getResult(ResultSet rs,intcolumnIndex)throwsSQLException {
Object object=rs.getObject(columnIndex);if(rs.wasNull()) {returnnull;
}else{returnfix(object);
}
}/***@seeTypeHandler#getResult(CallableStatement, int)*/publicObject getResult(CallableStatement cs,intcolumnIndex)throwsSQLException {
Object object=cs.getObject(columnIndex);if(cs.wasNull()) {returnnull;
}else{returnfix(object);
}
}/***@seeTypeHandler#valueOf(String)*/publicObject valueOf(String s) {returns;
}/*** !@#@%$%^$%%!@#%$%^#$%#!%#$^$#%^
*
*@paramobj
* object from oracle jdbc driver
*@returnobject of suitable java datatype*/protectedObject fix(Object obj) {try{if(objinstanceofTIMESTAMP) {returnnewDate(((TIMESTAMP) obj).dateValue().getTime());
}elseif(objinstanceofDATE) {returnnewDate(((DATE) obj).dateValue().getTime());
}elseif(objinstanceofTIMESTAMPLTZ) {returnnewDate(((TIMESTAMPLTZ) obj).dateValue().getTime());
}elseif(objinstanceofTIMESTAMPTZ) {returnnewDate(((TIMESTAMPTZ) obj).dateValue().getTime());
}else{returnobj;
}
}catch(Exception e) {returnobj;
}
}
}