Есть ли общий способ получения столбцов в ResultsSet из MapRow? - PullRequest
1 голос
/ 10 августа 2011

Я использую SimpleJdbcTemplate и, например, у меня что-то вроде этого:

@Override
 public Variant mapRow(ResultSet rs, int rowNum) throws SQLException

тогда я получаю значения из этого набора результатов с такими строками кода:

variant.setName(rs.getString("variant_name"));

поэтому я должен посмотреть на свою таблицу, посмотреть, какой тип я должен использовать для каждого столбца, - getString для String в этом примере - ... поэтому у меня будет getString, getLong, getInt, ...

Мне было интересно, есть ли более общий способ получения этих значений из набора результатов без необходимости указывать правильный тип, и надеяться, что Spring JDBC позаботится о некоторой упаковке / распаковке этих универсальных типов

1 Ответ

2 голосов
/ 11 августа 2011

Если вы хотите отобразить результаты JDBC на вашу объектную модель, вам придется с этим смириться. Это соглашение, когда вы используете JDBC.

Если вы хотите что-то более высокого уровня, включая сопоставление столбца с свойством, вам нужен более качественный инструмент. Вы можете использовать всю Hognate и использовать Hibernate, но он несет весь багаж и представляет 10 новых проблем для каждой решаемой проблемы.

Посмотрите на MyBatis (ранее известный как iBatis). Это довольно базовая структура для отображения наборов результатов JDBC в javabeans, с поддержкой управления соединениями / операторами. Spring обеспечивает поддержку iBatis 2 , но сам iBatis 2 больше не поддерживается. Spring не поддерживает новый MyBatis 3.x, но проект MyBatis обеспечивает собственную интеграцию Spring .

...