複数の結果セットがJdbcTemplate春戻す方法

***外部ネットワークへ完全にできない数年間、同社は、再び出てきた最近少し毛のブログ、最初に行く、ネットワークの外部続くことができるが、プロジェクトはなく、言語のC#から、庭に忙しく果たしてきましたJAVAを置き換えます。

幸いなことに、2つの類似したが、かなり簡単に上げ、最近動作SQLServerデータベースの時点で内部の直接のDataTable DataSetをインストールし、複数の結果セットを取得するために、そのC#のを発見し、JAVA、この

サイドホイールは非常に多く、これが行われますが、C#の利便ほど良好ではないことが必要です。

JdbcTemplateは、現在データベースを操作するために使用し、最終的に良い解決策は、複数の結果セットを取得するために達成することができ、おかげで見つかった  https://weiku.co/article/177/  ブロガーが共有しています。

ここではデモがあります

 
 
/ *** 
*获取多结果集
* @return
* /
パブリックリスト<リスト<地図<文字列オブジェクト>>> getMultiResult(){


文字列のSQL = "1 2 3を選択する選択選択します"。

リスト<リスト<地図<文字列オブジェクト>>>結果は= jdbcTemplate.execute(SQL、(CallableStatementCallback <リスト<リスト<地図<文字列オブジェクト>>>>)CS - > {
リスト<リスト<地図<文字列オブジェクト>>>リスト=新規のArrayList <>();
ブール()= cs.executeを実行し、

(実行){一方
のResultSetたresultSet = cs.getResultSet();
リスト<地図<文字列オブジェクト>>のsubList =新規のArrayList <> ();
(たresultSetつつ。

INT COLCOUNT = meta.getColumnCount()。
地図<文字列、オブジェクト>マップ=新しいHashMapの<>();
以下のために(INT I = 1; I <= COLCOUNT; iは++){
文字列名= meta.getColumnLabel(I)。
map.put(名前、resultSet.getObject(I));
}
subList.add(マップ)
}
list.add(のsubList)。
)(=のcs.getMoreResultsを実行します。
}
リストを返します。
});
結果を返します。
}
 

主なものは、C#とによる技術選択に処理、Javaのジェネリックを行うには、コールバックオブジェクトを使用することで同じではありませんので、多くの時間は、C#がとして便利ではありませんが、幸いコンパイラは基本的にこれらに対処することができます。

(CallableStatementCallback <リスト<リスト<地図<文字列、オブジェクト>>>>)CSは- > 、ラムダ式をサポートする特定のカテゴリを渡して、このインタフェースを実装することができない場合は、{このコード行は、非常に重要です。

おすすめ

転載: www.cnblogs.com/lclblog/p/11698339.html