private void testUnwrap() throws SQLException { ResultSet rs = stat.executeQuery("select 1"); assertTrue(rs.isWrapperFor(Object.class)); assertTrue(rs.isWrapperFor(ResultSet.class)); assertTrue(rs.isWrapperFor(rs.getClass())); assertFalse(rs.isWrapperFor(Integer.class)); assertTrue(rs == rs.unwrap(Object.class)); assertTrue(rs == rs.unwrap(ResultSet.class)); assertTrue(rs == rs.unwrap(rs.getClass())); assertThrows(ErrorCode.INVALID_VALUE_2, rs).unwrap(Integer.class); }
@Override public <T> T unwrap(Class<T> iface) throws SQLException { if (iface.isAssignableFrom(getClass())) { return iface.cast(this); } else if (iface.isAssignableFrom(_res.getClass())) { return iface.cast(_res); } else { return _res.unwrap(iface); } }
public static ROWID getROWID(ResultSet rs, int columnIndex) throws SQLException { OracleResultSet oracleResultSet = rs.unwrap(OracleResultSet.class); return oracleResultSet.getROWID(columnIndex); }