Заполнение pojo из базы данных с использованием spring jdbctemplate

#java #database #spring #jdbctemplate

#java #База данных #spring #jdbctemplate

Вопрос:

Возможно ли заполнить объект (pojo) без создания mapper, позволяя spring автоматически определять имена элементов данных, которые соответствуют столбцам? Я ожидал получить что-то похожее на SimpleJdbcInsert, в котором я использую следующее:

 new SimpleJdbcInsert(dataSource).withTableName("actors").execute(new BeanPropertySqlParameterSource(actor));
  

Спасибо!

Ответ №1:

В зависимости от того, какую версию Spring вы используете, вы можете использовать BeanPropertyRowMapper, который сопоставит столбцы с переменными в вашем POJO. Он отобразит либо прямые совпадения, либо преобразует имена баз данных в стиле подчеркивания в имена переменных в стиле верблюжьего регистра в вашем классе Java.

Ответ №2:

Честно говоря, я не знаю для spring, но, используя Bean common utils из apache, легко реализовать универсальный шаблон JDBC, выполняющий именно это.

Ответ №3:

Вы используете SimpleJdbcInsert, я думаю, вы имеете в виду SimpleJdbcTemplate, который приводит к повторному запуску?

Хороший способ — использовать RowMapper или ResultSetExtractor из Spring JDBC.

Но вы можете пропустить оболочку, используя метод queryForMap из SimpleJdbcTemplate, и передать результаты в BeanUtils из apache commons beanutils с методами populate (объектный компонент, Свойства карты).

Хотя, я думаю, лучшим решением является RowMapper или ResultSetExtractor.