Javaでソフトウェアをプログラミングし、Oracle DBを使用しています。
通常、次のようなループを使用してデータベースから値を取得します
Resultset rt = (Resultset) cs.getObject(1);
while(rt.next){
....
}
しかし、データベースから何千ものデータをフェッチするときは、より遅く聞こえます。
私の質問は:
Oracle DB の場合: このようなプロシージャを作成しました。これは反復データであり、カーソルに割り当てます。
Ex.procedure test_pro(sysref_cursor out info) as
open info select * from user_tbl ......
end test_pro;
JAVA コードの場合: 前に述べたように、resultset
値を取得するために反復処理を行いますが、データベース側では、値を選択しても、その値を取得するためにループを使用する必要があるのはなぜですか?
(.net フレームワークのもう 1 つの事実として、データベース バインディングの概念が使用されています。Java の場合も同様で、.net のようなデータベース プロシージャを反復せずにバインドします。)