Я обсуждал себя, использовать ли jdbcTemplate против apache DBUtils в моем проекте. Мое приложение представляет собой весеннее приложение, в котором мы используем jdbcTemplate для нескольких запросов. Но я думал об этом очень легком и простом для понимания Apache DbUtils.
Я знаю, что и jdbcTemplate, и dbutils являются уровнем абстракции поверх обычного JDBC, что помогает нам избежать кода бройлерной пластины.
Итак, мои вопросы:
1) Есть веская причина, по которой я должен убедить себя перенести все с jdbcTemplate на dbutils?
2) Любые автосопоставители POJO в jdbcTemplate, которые автоматически сопоставляются с классом java POJO? Я знаю, что в DbUtils мы можем сделать это, как показано ниже:
ResultSetHandler<List<Object>> beanListHandler = new BeanListHandler<Object>(Object.class, new BasicRowProcessor(new GenerousBeanProcessor())); я
Я знаю, что в jdbcTemplate у нас может быть собственный rowMapper, где мы можем явно установить свойства, как показано ниже, но есть ли способ сделать автоматическое сопоставление с POJOS, как в dbutils?
@Overides
public Object mapRow(){
//set to Object by calling setters
}
3) Будет ли иметь какое-либо значение производительность при использовании dbutils? (Поскольку мы уже используем jdbcTemplate в других запросах)
Может ли кто-нибудь предложить лучший выбор из этих двух и почему из вашего опыта?
@chrylis Спасибо, посмотрю. есть предложения по другим пунктам?
Stack Overflow предназначен для того, чтобы избежать многословных или открытых дискуссий. Этот вопрос, кажется, движется в этом направлении. Либо переформулируйте это как конкретную техническую проблему, которую необходимо решить, либо переместите ее на дочерний сайт Stack Overflow на русском, где вы переформулируете вопрос как список потребностей и критериев, по которым вы будете рассматривать предлагаемый продукт для успешного удовлетворения этих потребностей. Вопросы о сравнении продукта X с продуктом Y не относятся к теме на обоих сайтах. Итак, третье направление — дискуссионный сайт, такой как JavaRanch.com.




Если ваше приложение использует среду Spring, вам следует придерживаться JdbcTemplate. Работая в тандеме со средой Spring, он предлагает множество преимуществ, некоторые из ключевых из них:
и не забывайте, что в Интернете доступно множество материалов для этой комбинации, если вы застрянете в какой-либо точке и попытаетесь найти указатели.
Что вы можете сделать, чтобы уменьшить количество шаблонов вокруг извлечения данных (из ResultSet) и создания POJO, так это написать несколько общих реализаций RowMapper (или ResultSetExtractor). Реализация должна исследовать ResultsetMetadata, чтобы определить имена столбцов и типы возвращаемых записей, а также с помощью отражения класса (объект, который должен возвращать RowMapper) сопоставить их с полями или сеттерами, создать экземпляр, заполнить и вернуть объект.
JdbcTemplate включает обычные сопоставления POJO по умолчанию; это цель всех тех подписей, которые принимают
Classв качестве параметра.