JDBC 接続を使用しているときに、2 つの SELECT ステートメントを実行しようとしています。1 つ目はテーブル (SQL_IBGN) から 1 つのレコードを返し、2 つ目は最初のクエリの列 (BGNREF) を使用して別のテーブル (SQL_ITXN) から複数のレコードを返すように設計されています。
クエリごとに個別の Statement オブジェクトと ResultSet オブジェクトがあります。
クエリ 1 のコード:
Statement stmt = con.createStatement();
String sql = "SELECT BGNREF..... FROM SQL_IBGN WHERE BGNREF LIKE '2306009';";
ResultSet rs = stmt.executeQuery(sql);
String bgnref = null;
while (rs.next()) {
G1SQL_IBGN g1rec = new G1SQL_IBGN();
bgnref = rs.getString(1);
g1rec.setBGNREF(bgnref);
}
クエリ 2 のコード:
if (bgnref != null) {
Statement stmt1 = con.createStatement();
String sql1 = "SELECT ACT_DESC...... SQL_ITXN WHERE BGNREF LIKE '"
+ bgnref + "';"; // Execute the SELECT statement ResultSet
ResultSet rs1 = stmt1.executeQuery(sql1); // Get result of first five records
while (rs1.next()) {
G1SQL_ITXN g1itxn = new G1SQL_ITXN();
g1itxn.setACT_DESC(rs1.getString(1));
}
}
最初のクエリは単一のレコードを返しますが、rs1.next() = true であっても、2 番目の while ループ while (rs1.next()) は実行されません。