結果セットを処理する際に、各行を単一の型にマップしたり、各結果セットを単一のデータ構造にマップしたりしないため、RowCallbackHandler が必要になることがよくあります。代わりに、大部分の行を特定の Java Bean にマップし、残りを後処理用のリストに追加します。
このような場合、戻り値の型が void のコールバックが必要です。これを満たす唯一のコールバックは RowCallbackHandler です。
しかし、私はこれの多くの例に出くわすことはありません.JDBCを使用してResultSetをループする方が、不格好なSpringコールバックを使用するよりも審美的に優れていることを認めなければなりません. RowCallbackHandler は私が思っているよりも一般的ですか? 人々が何を言おうとしているのか興味があります...
編集:一部の人々が私のデータモデルを求めてきました。さて、nodes
テーブルとテーブルがありedges
ます。ノード A と B の間にエッジがある場合、そのエッジは次の 2 つのことを意味します。
- A と B は相互に作用する互いに素なノードです
- A は B のメンバー、またはその逆
2 番目のケースでは、これらのグループ ノードをリストに追加する必要があります。それらはばらばらなノード間の相互作用を意味しないため、まだ Java Bean にマップすることはできません。
おそらく、代わりに、ケース (1) を取得するクエリとケース (2) を取得するクエリの 2 つのクエリを作成する必要があります。ケース (1) は Java Bean に、ケース (2) はリストにマップできます。
これが実際に優れている場合、RowCallbackHandler
コードの臭いが悪いのでしょうか?