不知道是不是这个意思,我这样猜想的,根据你说的意思
String sql1;
String sql2;
pstmt = conn.prepareStatement(sql1);
pstmtOther = conn.prepareStatement(sql2+" field1=?" );
rs = pstmt.executeQuery();
while(rs.next()) {
do something;
int i=rs.getInt(1);
pstmtOther.setInt(1,i);
rsOther= pstmtOther.executeQuery();
while(rsOther.next()){
do something;
}
}
String sql1;
String sql2;
pstmt = conn.prepareStatement(sql1);
pstmtOther = conn.prepareStatement(sql2+" field1=?" );
rs = pstmt.executeQuery();
while(rs.next()) {
do something;
int i=rs.getInt(1);
pstmtOther.setInt(1,i);
rsOther= pstmtOther.executeQuery();
while(rsOther.next()){
do something;
}
}
我的第一个查询查出有关的人员编号(不止一条),
后三个分别查这些人员对应的名称, 关键是我在循环中可以在weblogic里输出正确的结果,但是在我把数据返回给调用query的Form时,我的后三个查询只能返回最后一次查询的结果.
{form部分的代码}
//set ClientRowSet Param
public ClientRowSet rsMhstatus = new ClientRowSet();
public ClientRowSet rsProxyName = new ClientRowSet();
public ClientRowSet rsApp1Name = new ClientRowSet();
public ClientRowSet rsApp2Name = new ClientRowSet();
public ClientRowSet[] rsAll = {rsMhstatus,rsProxyName,rsApp1Name,rsApp2Name};
private final static String QueryName =
"jp.co.ite.application.query.APPAUT_MhStatusQuery";
//调用Query
this.getSession().getClientConnection().provideData(QueryName, rsAll);{query的部分代码}
switch (index)
{
case 0:
//セミナのプロバイド
provideRowSet.setActive(true);
break;
case 1:
//セミナ経験のプロバイド
provideRowSets[0].moveFirst();
for (int i=0;i<provideRowSets[0].getRowCount();i++)
{
provideRowSet.getParamSet().setValueAsString(
CMN_APP_ColConstant.PROXY_MANNO,
provideRowSets[0].getValueAsString(
CMN_APP_ColConstant.PROXY_MANNO));
provideRowSet.setActive(true);
provideRowSets[0].moveNext(); }
break;
case 2:
//セミナ経験のプロバイド
provideRowSets[0].moveFirst();
for (int i=0;i<provideRowSets[0].getRowCount();i++)
{
provideRowSet.getParamSet().setValueAsString(
CMN_APP_ColConstant.APP1_MANNO,
provideRowSets[0].getValueAsString(
CMN_APP_ColConstant.APP1_MANNO));
provideRowSet.setActive(true);
provideRowSets[0].moveNext();
}
break;
case 3:
//セミナ経験のプロバイド
provideRowSets[0].moveFirst();
for (int i=0;i<provideRowSets[0].getRowCount();i++)
{
provideRowSet.getParamSet().setValueAsString(
CMN_APP_ColConstant.APP2_MANNO,
provideRowSets[0].getValueAsString(
CMN_APP_ColConstant.APP2_MANNO));
provideRowSet.setActive(true);
provideRowSets[0].moveNext();
}
break;
}