java - RowCallbackHandler 与 JdbcTemplate 的流行

标签 java spring

很多时候我需要 RowCallbackHandler,因为在处理结果集时,我不会将每一行映射到单个类型,也不将每个结果集映射到单个数据结构。相反,我可以将大多数行映射到特定的 Java bean,并将其余行添加到列表中以进行后处理。

在这些情况下,我需要一个返回类型为 void 的回调,唯一满足此要求的回调是 RowCallbackHandler。

但是我没有遇到过很多这样的例子,而且我必须承认,使用 JDBC 并循环 ResultSet 在美学上比使用笨重的 Spring 回调更好。 RowCallbackHandler 比我想象的更常见吗?我很好奇人们会说什么......

<小时/>

编辑:有些人询问我的数据模型。好的,有一个 nodes 表和一个 edges 表。如果节点 A 和 B 之间有一条边,则该边可以表示两件事:

  1. A 和 B 是相互作用的不相交节点
  2. A 是 B 的成员,反之亦然

在第二种情况下,我需要将这些组节点添加到列表中。它们还不能映射到 Java bean,因为它们并不表示不相交节点之间的交互。

也许我应该做的是进行 2 个查询,一个检索案例 (1),另一个检索案例 (2)。情况 (1) 可以映射到 Java bean,情况 (2) 可以映射到列表。

如果这确实更好,那么也许 RowCallbackHandler 是一种不好的代码味道?

最佳答案

如果您想要处理整个结果集而不返回任何内容,只需使用 ResultSetExtractor<Void> (以及将其作为参数的 JdbcTemplate 方法之一)。

关于java - RowCallbackHandler 与 JdbcTemplate 的流行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16696683/

相关文章:

java - 安全使用 CyclicBarrier.reset

java 。防止按钮变大

java - spring SQL Injection中的@Query注解安全吗?

java - DAO 类具有相同的 @Qualifier

java - 实体不通过 TomEE 上的 Spring(CrudRepository) 持久化

java - Hibernate + Lombok 的 Id 字段的 LazyInitializationException

java - Android Studio IDE 在 Ubuntu 15.04 上不显示对话框内容

java - 如何在android图库中显示10分钟前拍摄的图像?

java - Multi-Tenancy 数据源之间的动态切换不起作用

java - 在 Http Requester 的 Java 设计方面需要帮助