Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApacheJDBCutilts与SpringJDBC模板。哪个更好?_Java_Spring_Jdbctemplate_Apache Commons Dbutils - Fatal编程技术网

Java ApacheJDBCutilts与SpringJDBC模板。哪个更好?

Java ApacheJDBCutilts与SpringJDBC模板。哪个更好?,java,spring,jdbctemplate,apache-commons-dbutils,Java,Spring,Jdbctemplate,Apache Commons Dbutils,我在讨论是否在我的项目中使用jdbcTemplate和ApacheDbutils。我的应用程序是一个spring应用程序,我们使用jdbcTemplate处理少量请求。但我考虑的是这个非常轻量级且易于理解的ApacheDbutils 我知道jdbcTemplate和dbutils都是常规JDBC之上的抽象层,这有助于我们避免使用bounder-plate代码 所以我的问题是: 1) 我有什么理由说服自己将所有东西从jdbcTemplate迁移到dbutils吗? 2) jdbcTemplate中

我在讨论是否在我的项目中使用jdbcTemplate和ApacheDbutils。我的应用程序是一个spring应用程序,我们使用jdbcTemplate处理少量请求。但我考虑的是这个非常轻量级且易于理解的ApacheDbutils

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

所以我的问题是:

1) 我有什么理由说服自己将所有东西从jdbcTemplate迁移到dbutils吗?

2) jdbcTemplate中是否有自动映射到java POJO类的自动POJO映射程序?在DbUtils中,我知道我们可以像下面这样做:

ResultSetHandler beanListHandler=new beanListHandler(Object.class,new basicroProcessor(new granousBeanProcessor())I

在jdbcTemplate中,我知道我们可以有一个自定义的行映射器,在这里我们可以显式地设置如下属性,但是有没有一种方法可以像dbutils那样自动映射到pojo

@Overides

public Object mapRow(){
     //set to Object by calling setters
}
3) 在性能方面,使用dbutils会有什么不同吗?(因为我们已经在其他请求中使用了jdbcTemplate)


有人能建议从这两个选项中选择最佳选项吗?为什么根据您的经验?

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

  • 容器管理的生命周期
  • 与Spring倡导的DAO设计模式相匹配
  • Spring的事务管理
别忘了,互联网上有很多关于这一组合的资料,如果你在任何时候都陷入困境并试图寻找指针的话


不过,为了减少数据提取(从ResultSet)和创建POJO的工作量,您可以编写一些RowMapper(或ResultSetTextRactor)的通用实现。实现应该探测ResultsetMetadata以确定返回记录的列名和类型,并在类(RowMapper应该返回的对象)上进行一些反射,将它们与字段或setter匹配,实例化、填充并返回对象

JdbcTemplate默认包括常规POJO映射;这是所有将
作为参数的签名的用途。@chrylis感谢您的帮助。关于其他方面有什么建议吗?堆栈溢出旨在避免冗长或无限制的讨论。这个问题似乎正朝着这个方向发展。或者把这个框架作为一个具体的技术问题来解决,或者把它移到姐妹站点软件推荐堆栈交换中,在那里你会把问题重置为需求清单和标准,通过这些标准你可以考虑一个建议的产品来成功地满足这些需求。关于比较产品X和产品Y的问题在这两个网站上都是离题的。因此,第三大道是一个讨论网站,如