ResultSetWrapper is missing these methods:
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getHoldability()
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getNCharacterStream(int)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getNCharacterStream(String)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getNClob(int)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getNClob(String)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getNString(int)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getNString(String)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getRowId(int)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getRowId(String)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getSQLXML(int)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.getSQLXML(String)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.isClosed()
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateAsciiStream(int, InputStream, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateAsciiStream(int, InputStream)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateAsciiStream(String, InputStream, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateAsciiStream(String, InputStream)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateBinaryStream(int, InputStream, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateBinaryStream(int, InputStream)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateBinaryStream(String, InputStream, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateBinaryStream(String, InputStream)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateBlob(int, InputStream, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateBlob(int, InputStream)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateBlob(String, InputStream, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateBlob(String, InputStream)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateCharacterStream(int, Reader, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateCharacterStream(int, Reader)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateCharacterStream(String, Reader, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateCharacterStream(String, Reader)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateClob(int, Reader, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateClob(int, Reader)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateClob(String, Reader, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateClob(String, Reader)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNCharacterStream(int, Reader, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNCharacterStream(int, Reader)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNCharacterStream(String, Reader, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNCharacterStream(String, Reader)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNClob(int, NClob)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNClob(int, Reader, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNClob(int, Reader)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNClob(String, NClob)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNClob(String, Reader, long)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNClob(String, Reader)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNString(int, String)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateNString(String, String)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateRowId(int, RowId)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateRowId(String, RowId)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateSQLXML(int, SQLXML)
The type ResultSetWrapper must implement the inherited abstract method ResultSet.updateSQLXML(String, SQLXML)
The type ResultSetWrapper must implement the inherited abstract method Wrapper.isWrapperFor(Class<?>)
The type ResultSetWrapper must implement the inherited abstract method Wrapper.unwrap(Class<T>)
The current solution is to wrap the ResultSet with a custom ResultSetWrapper object which uses the following algorithm to lookup the value of the column.
1. First, we check to see if there is a column in the result set with the fully-qualified name.
2. That failing, we check to see if there is a column in the result set with a shortened name (everything after the period).
3. If even fails, we delegate the search to the vender-specific ResultSet try to figure it out with its own algorithms.
Since each lookup involves a linear search against the list of column names in the result set, we cache them to improve performance.