如何在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
作为一行数据
请高手赐教! 展开
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
作为一行数据
请高手赐教! 展开
3个回答
展开全部
用一个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编译器,会有提示。
你在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));
}
}
展开全部
你可以先用Object[]数组装好,再放进ArrayList
更多追问追答
追问
嗯,可是A_x A_y在rs1中,B_x B_y在rs2中
在用rs1.next()遍历与rs2.next()遍历分开了
追答
我觉得你还是用HQL好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你就封装一个对象,包含那几个字段
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询