java 用返回的list去查询数据库,返回list
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 用返回的list去查询数据库,返回list相关的知识,希望对你有一定的参考价值。
我把一张表查出来的数据存在list里面
已经return list1
怎么用这个list1去查另一张表,也要return list2
怎么写的....
private List getOrdersInfo() 这个时候传入list1吗?
1、查询表1中符合条件的信息,获取一个结果集合1;
2、基于结果集合1循环,检索表2,获取结果集合2。
如此,如果表1、表2间存在直接关联关系(即直接使用结果集合1中的部分信息作为表2查询的条件),那么完全可以在后台将两张表关联查询,这样避免了通过java进行循环,在大数量级情况下会严重占用内存。
如果表1,表2间没有直接的关联关系(即通过循环表1,判断其中条件后按照其它的特定对照值去查询表2),那么仍然建议使用后台表关联查询,及将表1查询的结果集按照不同的条件获取的值转换成对应的映射值后作为一个基准集合,然后将这个集合与表2关联查询即可。具体的sql语句,得根据你使用的数据库和具体场景去编写。
总之,此类情况,完全可以交由数据库搞定,如果使用你现在的逻辑(即查询表1,循环结果集1,然后查询表2,获取结果集2),虽然原则上没有错,但会增加很多内存开销,在大数据量级的情况下,非常容易出现内存溢出的异常,并不作为合理的编码方式。 参考技术A 传入的参数不重要,问题是你逻辑怎么处理。
你传入list进去,如果里面用到的数据是list1里面的单一记录,那就跑循环,如果2个list之间有关联,直接join表跑效率会提高很多 参考技术B 设置关联,用延迟hibernate的加载
java查询后返回到table中,怎么实现
数据库中有多条数据,需要显示多个行。谢谢
每一个表列对应一个实体类,循环从ResutSet对象的next()中读取行,用面向对象的方式(即每一行对应一个对象),然后将所读的对象添加到List 对象中。
假如所有数据已加入到(List lists=new ArrayList())中。
<table>
<tr><td>列一</td><td>列二</td></tr>
<%
for(int i=0;i<lists.size();i++)
%>
<tr><td><%=(Object)lists.get(i).getAttribute1()%></td>
<td><%=(Object)lists.get(i).getAttribute1()%></td></tr>
<%
%>
</table> 参考技术A 把数据放到Object数组里,然后添加到model中
简单核心代码:
int col = rs.getMetaData().getColumnCount();
Object[] row = new Object[col];
while (rs.next())
for (int i = 0; i < col; i++)
row[i] = rs.getObject(i + 1);
System.out.println(row);
model2.addRow(row);
参考技术B 自己写个内部类继承自AbstractTableModel,然后实现了父类的几个方法。把可变数组里的数值赋值给model的方法就可以了 具体查看JDK1.5帮助文档查找AbstractTableModle
以上是关于java 用返回的list去查询数据库,返回list的主要内容,如果未能解决你的问题,请参考以下文章