Spring имеет BeanPropertyRowMapper
чтобы вытащить из SQL на выбор и сопоставить объект POJO без необходимости создания настраиваемого контроллера строк. Я надеюсь на то же самое, но на инструкцию insert. Но я не могу найти эквивалент.
public boolean addRenewalQuote(Quote quote) {
String sql = "INSERT INTO Customers (internal_order_number, b_email, s_email, b_firstname) VALUES (?, ?, ?, ?);";
if(getTemplate().update(sql, quote) > 0) {
return true;
}else {
return false;
}
}
Имена строк котировки уже соответствуют столбцам в БД. Фактическая вставка довольно велика, и я надеюсь, что существует более быстрый метод, чем захват каждого получателя кавычек по отдельности и передача его методу обновления.
Вид, но вам придется получить доступ к переменным-членам pojo следующим образом:
Object[] args = new Object[] {quote.getOrderNumber(), quote.getBEmail(), quote.getSEmail(), quote.getFirstName()};
int[] types = new int[] {Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR};
getTemplate().update(sql, args, types};
Не забудьте изменить массив args и тип массива соответственно.
Кроме того, вы можете прочитать больше в документации здесь.
JdbcTemplate
не имеет,NamedParameterJdbcTemplate
с другой стороны, вы можете использоватьBeanPropertySqlParameterSource
. Вы должны использовать именованные параметры, чтобы заставить его работать, но спасает вас от вызова получателей.