Apache JDBC Utils与Spring JDBC模板。哪个更好?

问题描述 投票:-1回答:1

我在辩论自己是否在我的项目中使用jdbcTemplate与apache DBUtils。我的应用程序是一个spring应用程序,我们使用jdbcTemplate来处理少量请求。但我正在考虑这个非常轻量级且易于理解的Apache DbUtils。

我知道jdbcTemplate和dbutils都是常规JDBC之上的抽象层,这有助于我们避免使用肉鸡板代码。

所以我的问题是: 1)我应该说服自己将所有东西从jdbcTemplate迁移到dbutils的任何有力的理由? 2)jdbcTemplate中的任何自动POJO映射器自动化到Java POJO类?在DbUtils中我知道我们可以这样做:

ResultSetHandler<List<Object>> beanListHandler = new BeanListHandler<Object>(Object.class, new BasicRowProcessor(new GenerousBeanProcessor()));

在jdbcTemplate中我知道我们可以有一个自定义的rowMapper,我们可以在其中显式设置如下所示的属性,但有没有办法像dbutils一样自动映射到POJOS?

@Overides

public Object mapRow(){
     //set to Object by calling setters
}

3)性能明智会使用dbutils有什么不同吗?(因为我们已经在其他请求中使用了jdbcTemplate)

任何人都可以建议最好从这两个中选择,为什么从你的经验?

java spring jdbctemplate apache-commons-dbutils
1个回答
1
投票

如果您的应用程序使用的是Spring框架,那么您应该坚持使用JdbcTemplate。与Spring框架协同工作,它提供了许多好处,其中一些是关键的好处

  • 容器管理生命周期
  • 与Spring倡导的DAO设计模式相得益彰
  • Spring的交易管理

并且不要忘记,如果您在任何时候陷入困境并尝试寻找指针,那么这种组合可以在互联网上获得大量材料。

你可以做些什么来减少数据提取(来自ResultSet)和创建POJO的锅炉板,写一些RowMapper(或ResultSetExtractor)的通用实现。实现应探测ResultsetMetadata以确定列名和返回记录的类型,并使用一些反射类(RowMapper应返回的对象)将它们与字段或setter匹配,实例化,填充和返回对象。

© www.soinside.com 2019 - 2024. All rights reserved.