- PR -

DB接続中に別のDBへ接続できますか?

1
投稿者投稿内容
nabeママ
常連さん
会議室デビュー日: 2003/04/11
投稿数: 39
投稿日時: 2003-04-15 12:14
こんにちは。またまたお世話になります。

AというDBに接続してデータを抽出(複数)し、1件ずつ表示させている最中に
Aから得たデータをキーとして別のDBへ接続して結果を得ることはできますか?

AとBは接続するConnectionオブジェクトが違います。

Aから得たデータを配列に入れてAをクローズし、次にBを接続して抽出する方法しか考えられません。

どうぞよろしくお願いします。


[ メッセージ編集済み 編集者: nabeママ 編集日時 2003-04-16 16:53 ]
pyob
会議室デビュー日: 2003/04/15
投稿数: 4
投稿日時: 2003-04-15 19:26
同時接続に漠然とした不安を覚えるので、

> Aから得たデータを配列に入れてAをクローズし、次にBを接続して抽出する方法しか考えられません。

↑を私もお薦めするのですが、以下の方法で一応できるのでは?と思い投稿しました。

ResultSet rsA;  /* AのResultSet(既に取得済みとする) */
Connection conB; /* BのConnection(既に取得済みとする) */

PreparedStatement psmt;
ResultSet rsB;
String query = "SELECT DATA FROM DB_B_TBL WHERE KEY = ?";

psmt = conB.prepareStatement(query);

while(rsA.next())
{
  /* この辺でAの他のデータ出力 */

  /* Bのデータ取得 */
  psmt.setString(1, rsA.getString("KEY")); /* キーとなるデータを取得し、セット */
  rsB = psmt.executeQuery(); /* 結果セット取得 */

  /* この辺でBのデータ出力 */
}

(例外処理は省略)

動作確認も取っていないので、上手くいくかどうか分かりません。
識者の方、補足・問題点等ご指摘をお願いいたします。


[ メッセージ編集済み 編集者: pyob 編集日時 2003-04-15 19:29 ]
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2003-04-15 23:36
Aの接続をクローズせずとも
ConnectionオブジェクトやResultSetを作りまくれば
複数のDB接続は可能です。

でも、同じキーを別のDB内のデータと比較するような設計は
後々考えると厳しいのではとおもいます。。。

仕様なんですよねtt
nabeママ
常連さん
会議室デビュー日: 2003/04/11
投稿数: 39
投稿日時: 2003-04-16 11:23
こんにちは。
pyobさん、raystarさん、レスありがとうございます。

複数のDB接続可能ということなのでその通り、Aを接続中に接続してDBから値を抽出しました。ただ、pyobさんのおっしゃる通り、連続した接続はレスポンスにも影響しそうなのでpyobさんの教えていただいた方法も含め、もう少し勉強したいと思います。
仕様については・・・これだけのためのDBではないので

本当にありがとうございましたぁ。

[ メッセージ編集済み 編集者: nabeママ 編集日時 2003-04-16 17:08 ]
1

スキルアップ/キャリアアップ(JOB@IT)