如何在Java中把两个结果集rs1、rs2存入同一个ArrayList对象中? 30

我用下面的两条sql语句分别得到了两个结果集rs1、rs2:selecttb_point.xasA_x,tb_point.yasA_yfromtb_lineleftjoi... 我用下面的两条sql语句分别得到了两个结果集rs1、rs2:
select tb_point.x as A_x,tb_point.y as A_y from tb_line left join tb_point on tb_point.v_id = tb_line.v1_id ;
select tb_point.x as B_x,tb_point.y as B_y from tb_line left join tb_point on tb_point.v_id = tb_line.v2_id ;
现在是要把他们存入一个ArrayList对象中,想要的结构为:
A_x A_y B_x B_y
作为一行数据

请高手赐教!
展开
 我来答
韩林霄
2014-04-01 · TA获得超过163个赞
知道答主
回答量:17
采纳率:0%
帮助的人:9万
展开全部
用一个for循环。
你在java中执行sql语句,肯定是用ResultSet做结果集。
ResultSet rsA;
ResultSet rsB;//代表你的两个结果集
ArrayList<Object> list=new ArrayList();//存放的list集合
while(rsA.next())
{
list.add(rsA.getObject(0));//这里因为不知道你的具体数据类型,所以用Object,你自己可以改正你自己的数据类型
list.add(rsA.getObject(1));

}
while(rsB.next())
{
list.add(rsB.getObject(0));//这里因为不知道你的具体数据类型,所以用Object,你自己可以改正你自己的数据类型
list.add(rsB.getObject(1));

}
后面释放资源什么的。
具体就像这样。你用eclipse编译器,会有提示。
更多追问追答
追问
你的意思:
while(rsA.next())
{
....
}
while(rsB.next())
{
....
}
这样好像会先把A的结果集存完再存B的
而不是我想要的一条ArrayList记录=A的一条+B的一条
...
请问这样要怎么解决
追答
那也简单,只要这样:
while(rsA.next()||rsB.next())
{
if(!rsA.isAfterLast()){//判断结果集A是否到头
list.add(rsA.getObject(0));//这里因为不知道你的具体数据类型,所以用Object,你自己可以改正你自己的数据类型
list.add(rsA.getObject(1));
}
if(!rsB.isAfterLast()){
list.add(rsB.getObject(0));//这里因为不知道你的具体数据类型,所以用Object,你自己可以改正你自己的数据类型
list.add(rsB.getObject(1));
}
}
chelze
2014-04-01
知道答主
回答量:14
采纳率:100%
帮助的人:6.9万
展开全部
你可以先用Object[]数组装好,再放进ArrayList
更多追问追答
追问
嗯,可是A_x   A_y在rs1中,B_x   B_y在rs2中
在用rs1.next()遍历与rs2.next()遍历分开了
追答
我觉得你还是用HQL好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pengzhi143neng
2014-04-01 · TA获得超过454个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:191万
展开全部
那你就封装一个对象,包含那几个字段
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式