Мне нужно сопоставить JDBC ResultSet
с object
, который содержит примерно 20 полей.Однако количество столбцов в ResultSet
может каждый раз отличаться в зависимости от «полей выбора» выполненного запроса.Теперь мне нужно установить поля данных в объекте, которые присутствуют в ResultSet
.
В настоящее время я использую if statements
для проверки того, какие из data fields
присутствуют в ResultSet
, и, если присутствует, для настройки соответствующих полей.Все остальные поля не должны быть установлены.
Мое текущее решение выглядит примерно так:
//Using resultSetMetaData
List<Fields> presentFields: Columns present in the ResultSet obtained
if(PresentFields.contains(field1)){obj.set field1;}
if(PresentFields.contains(field2)){obj.set field2;}
if(PresentFields.contains(field3)){obj.set field3;}
.
.
same for 20 fields
Теперь я не хочу писать 20 операторов if в моем коде для этого.Есть ли способ сделать это более эффективным и аккуратным, чем описанный выше?