Есть ли общий способ получения столбцов в ResultsSet of MapRow?

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

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

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

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

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

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


person Bohn    schedule 10.08.2011    source источник


Ответы (1)


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

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

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

person skaffman    schedule 10.08.2011