从不同的表得到两种list:A与B,现想将其转成一个page,我想到的方法是用一个新的
listC来遍历接收A与B,再将其转换成page。个人认为这种方法效率较低,请问各位大神有
没有更加优化的方法,请指教,谢谢
PS:A与B的表结构不同,字段也不同
问、A 与 B 转成Page ,Page是啥对象?是将两个List 合成一个 List在一个页面上显示?
如果是,
问、 A 与 B 是否有相同的关联 属性
如果有,
可以考虑优化 数据库语言
在取出值再去遍历合成一个表,确实速度上面会慢一点点。
这样,我有两种方式,你看哪个更适合你
1.从数据库入手,查询两个表的相同字段,然后union all。
2.你先查询出两张表,然后在加载到页面的时候,在客户端遍历两张表
public static void main(String[] args) {
List<Map> A = new ArrayList<>();
Map m = new HashMap<>();
m.put("key", "value");
A.add(m);
List<Integer> B = new ArrayList<>();
B.add(10);
List<Object> C = new ArrayList<>();
C.addAll(A);
C.addAll(B);
System.err.println(C);
}
控制台打印 : [{key=value}, 10]
可以修改数据对象的结构,重组一个新的对象,这个对象包含那两个list对象
建议换个方法试试,或者参考国内外的文档看看。
按照我以前的做法,前端显示的内容单独定一个Bean对象,哪怕数据库映射对象和Bean对象完全一样也这么做,然后通过Bean对象增加方法,对2者进行转换。
针对你的问题,和上面的内容你可以写个C对象,里面包含了A、B,然后前端使用C对象来显示。
如果不想按上面的说法来做,就是你的Page对象中直接设置A的list和B的list对象。在页面时遍历其中一个,然后根据索引取另外一个。