当前位置: 技术问答>java相关
中秋节快乐,一个关于在jsp中操作数据库表的问题!!解决问题者给100分
来源: 互联网 发布时间:2015-09-10
本文导语: 我用的数据库为SQLServer2000 我现在要从两个表里取数据。 我从第一个表里循环的取记录,但每取出一个记录时我还要去第二个表里取数据,再依次循环取第一个表里的下面的记录。但当我取完第一个表里的第一条记录...
我用的数据库为SQLServer2000
我现在要从两个表里取数据。
我从第一个表里循环的取记录,但每取出一个记录时我还要去第二个表里取数据,再依次循环取第一个表里的下面的记录。但当我取完第一个表里的第一条记录,再从地二个表里取出数据时,不能继续循环的取下面的记录了,请问那位大侠能帮忙解决这个问题。(注:两个表必须要分开取数据的)
如果分少可以再加100分。
我现在要从两个表里取数据。
我从第一个表里循环的取记录,但每取出一个记录时我还要去第二个表里取数据,再依次循环取第一个表里的下面的记录。但当我取完第一个表里的第一条记录,再从地二个表里取出数据时,不能继续循环的取下面的记录了,请问那位大侠能帮忙解决这个问题。(注:两个表必须要分开取数据的)
如果分少可以再加100分。
|
循环嵌套
String sql="select * from Table1";
String sql2="select * from Table2";
ResultSet rs1=stmt.executeQuery(sql);
ResulltSet rs2=stmt.executeQuery(sql2);
while(rs1.next())
{
int id=rs1.getInt(id);
while(rs2.next())
{
int id2=rs2.getInt(id);
}
}
rs.close();
stmt.close();
conn.close();
String sql="select * from Table1";
String sql2="select * from Table2";
ResultSet rs1=stmt.executeQuery(sql);
ResulltSet rs2=stmt.executeQuery(sql2);
while(rs1.next())
{
int id=rs1.getInt(id);
while(rs2.next())
{
int id2=rs2.getInt(id);
}
}
rs.close();
stmt.close();
conn.close();
|
仅用两个结果集是不行的,必须用两个Statement对象,像下面这样:
String sql="select id1 from Table1";
String sql2="select * from Table2";
ResultSet rs1=stmt1.executeQuery(sql);
ResulltSet rs2 = null;
String id1 = "";
String id2 = "";
while(rs1.next())
{
id1 =rs1.getString("id1");
sql2 += " where id1='" + id1 + "'";
rs2 = stmt2.executeQuery(sql2)
while(rs2.next())
{
id2 = rs2.getString("id2");
}
}
rs1.close();
rs2.close();
stmt1.close();
stmt2.close();
conn.close();
String sql="select id1 from Table1";
String sql2="select * from Table2";
ResultSet rs1=stmt1.executeQuery(sql);
ResulltSet rs2 = null;
String id1 = "";
String id2 = "";
while(rs1.next())
{
id1 =rs1.getString("id1");
sql2 += " where id1='" + id1 + "'";
rs2 = stmt2.executeQuery(sql2)
while(rs2.next())
{
id2 = rs2.getString("id2");
}
}
rs1.close();
rs2.close();
stmt1.close();
stmt2.close();
conn.close();
|
只要用两个rs,就没有问题了。如果要进行游标的跳转和前移,别忘了设置正确的TYPE_SCROLL_xxx。