Вы можете обернуть любой JDBC ResultSet
своей пользовательской реализацией:
public class MyResultSet implements ResultSet {
// Delegate most implementations to the underlying database result set:
private final ResultSet delegate;
public MyResultSet(ResultSet delegate) {
this.delegate = delegate;
}
@Override
public int getInt(int index) throws SQLException {
return delegate.getInt(index);
}
// [... more delegate methods ...]
// Add custom methods
public void setData(Object someValue) { ... }
public Object getData() { ... }
}
Ваш пользовательский набор результатов ведет себя как любой другой набор результатов.Клиентский код, считывающий данные из вашего пользовательского набора результатов, не заметит изменений, которые вы внесете в него «под капотом».Другими словами, вы можете делать вид, что некоторые данные доступны
public class MyResultSet implements ResultSet {
// [...]
@Override
public int getInt(int index) throws SQLException {
if (index == 3) {
return 42;
} else {
return delegate.getInt(index);
}
}
}