Преимущество настройки драйвера таким образом, чтобы он работал за кулисами, заключается в том, что программисту не нужно передавать карту типов в ResultSet.getObject (...) и, следовательно, он должен помнить одну деталь (большую часть времени)).Драйвер также может быть сконфигурирован во время выполнения с использованием свойств для определения отображений, поэтому код приложения может храниться независимо от деталей сопоставления типа SQL и объекта.Если приложение может поддерживать несколько разных баз данных, это позволяет поддерживать разные сопоставления для каждой базы данных.
Ваш метод является жизнеспособным, его основная характеристика заключается в том, что код приложения использует явные сопоставления типов.
В закулисном подходе метод ResultSet.getObject (int) будет использовать сопоставления типов, определенные для соединения, а не передаваемые кодом приложения в ResultSet.getObject (int index, Map mapping).В остальном подходы одинаковы.
Другие подходы
Я видел другой подход, используемый с JBoss 4 на основе этих классов:
org.jboss.ejb.plugins.cmp.jdbc.JDBCParameterSetter
org.jboss.ejb.plugins.cmp.jdbc.JDBCResultSetReader.AbstractResultSetReader
Идея та же, но реализация нестандартная (вероятно, она предшествует версии стандарта JDBC, определяющей SQLData / SQLInput).