我正在辩论自己是否在项目中使用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)
有人能建议从这两个中选出最好的一个,为什么从您的经验中选出来?
答案 0 :(得分:1)
如果您的应用程序使用的是Spring框架,则应坚持使用JdbcTemplate。与Spring框架协同工作可带来许多好处,其中一些关键优点是
请不要忘记,如果您在任何时候都遇到困难并试图寻找指点,那么互联网上可以使用大量材料进行这种组合。
您可以做的是减少围绕数据提取(从ResultSet)和创建POJO的样板,是编写RowMapper(或ResultSetExtractor)的一些通用实现。该实现应探查ResultsetMetadata以确定列名和返回记录的类型,并在“ Reflection on Class”(RowMapper应返回其对象)上将它们与字段或设置器进行匹配,实例化,填充并返回对象。