snaker-core/src/main/java/org/snaker/engine/access/jdbc/JdbcHelper.java
public static Object getResultSetValue(ResultSet rs, int index) throws SQLException {
		Object obj = rs.getObject(index);
		String className = null;
		if (obj != null) {
			className = obj.getClass().getName();
		}
		if (obj instanceof Blob) {
			obj = rs.getBytes(index);
		}
		else if (obj instanceof Clob) {
			obj = rs.getString(index);
		}
		else if (className != null &&
				("oracle.sql.TIMESTAMP".equals(className) ||
				"oracle.sql.TIMESTAMPTZ".equals(className))) {
			obj = rs.getTimestamp(index);
		}
		else if (className != null && className.startsWith("oracle.sql.DATE")) {
			String metaDataClassName = rs.getMetaData().getColumnClassName(index);
			if ("java.sql.Timestamp".equals(metaDataClassName) ||
					"oracle.sql.TIMESTAMP".equals(metaDataClassName)) {
				obj = rs.getTimestamp(index);
			}
			else {
				obj = rs.getDate(index);
			}
		}
		else if (obj != null && obj instanceof java.sql.Date) {
			if ("java.sql.Timestamp".equals(rs.getMetaData().getColumnClassName(index))) {
				obj = rs.getTimestamp(index);
			}
		}
		return obj;
	}
public static Object getResultSetValue(ResultSet rs, int index) throws SQLException {
		Object obj = rs.getObject(index);
		String className = null;
		if (obj != null) {
			className = obj.getClass().getName();
		}
		if (obj instanceof Blob) {
			obj = rs.getBytes(index);
		}
		else if (obj instanceof Clob) {
			obj = rs.getString(index);
		}
		else if (className != null &&
				("oracle.sql.TIMESTAMP".equals(className) ||
				"oracle.sql.TIMESTAMPTZ".equals(className))) {
			obj = rs.getTimestamp(index);
		}
		else if (className != null && className.startsWith("oracle.sql.DATE")) {
			String metaDataClassName = rs.getMetaData().getColumnClassName(index);
			if ("java.sql.Timestamp".equals(metaDataClassName) ||
					"oracle.sql.TIMESTAMP".equals(metaDataClassName)) {
				obj = rs.getTimestamp(index);
			}
			else {
				obj = rs.getDate(index);
			}
		}
		else if (obj != null && obj instanceof java.sql.Date) {
			if ("java.sql.Timestamp".equals(rs.getMetaData().getColumnClassName(index))) {
				obj = rs.getTimestamp(index);
			}
		}
		return obj;
	}
public static Object getResultSetValue ( ResultSet rs , int index ) throws SQLException { Object obj = rs . getObject ( index ) ; String className = null ; if ( obj != null ) { className = obj . getClass ( ) . getName ( ) ; } if ( obj instanceof Blob ) { obj = rs . getBytes ( index ) ; } else if ( obj instanceof Clob ) { obj = rs . getString ( index ) ; } else if ( className != null && ( "oracle.sql.TIMESTAMP" . equals ( className ) || "oracle.sql.TIMESTAMPTZ" . equals ( className ) ) ) { obj = rs . getTimestamp ( index ) ; } else if ( className != null && className . startsWith ( "oracle.sql.DATE" ) ) { String metaDataClassName = rs . getMetaData ( ) . getColumnClassName ( index ) ; if ( "java.sql.Timestamp" . equals ( metaDataClassName ) || "oracle.sql.TIMESTAMP" . equals ( metaDataClassName ) ) { obj = rs . getTimestamp ( index ) ; } else { obj = rs . getDate ( index ) ; } } else if ( obj != null && obj instanceof java . sql . Date ) { if ( "java.sql.Timestamp" . equals ( rs . getMetaData ( ) . getColumnClassName ( index ) ) ) { obj = rs . getTimestamp ( index ) ; } } return obj ; }
对于特殊字段类型做特殊处理
@param rs
@param index
@return
@throws SQLException
对于特殊字段类型做特殊处理