JAVA两个表相关联_java实现两张表的关联查询(非数据库语言)
已知我有两张表:我现在查询时需要同时获取两张表对应的数据。比如我想要获取 stuid,honName,obreson三个对应字段。我在脑子里梳理了一下思路,以我目前的知识储备,只能在数据库写一下两个表join,然后在bean层,要么一个里面封装另外一个对象,要么另外写一个类封装一下。很明显第一个方法有点违反开闭原则,假如这个底层不是我写的那我绝对不能这么干,第二个又有点繁琐,所以我就在思考有没..
已知我有两张表:


我现在查询时需要同时获取两张表对应的数据。比如我想要获取 stuid,honName,obreson三个对应字段。我在脑子里梳理了一下思路,以我目前的知识储备,只能在数据库写一下两个表join,然后在bean层,要么一个里面封装另外一个对象,要么另外写一个类封装一下。
很明显第一个方法有点违反开闭原则,假如这个底层不是我写的那我绝对不能这么干,第二个又有点繁琐,所以我就在思考有没有别的方法。
解决方法:
我想起来了在stream那一块的流的扁平化这一点,立马去实践了一下:
ListhonorList = honors.findAll();
ListobtainedhonorList = obHonors.findAll();
Listlist = obtainedhonorList
.stream()
.flatMap(o->honorList
.stream()
.filter(h->o.getHonid()==h.getHonid())
.map(h->new Object[]{h,o}))
.collect(Collectors.toList());
现在就已经拿到了这样的一组集合
//list
尝试对两个进行一下遍历
for (Object[] o:list
) {
for (int i=0;i
获得的结果为:
奖励1-----
1
表现优秀
奖励2-----
1
表现卓越
再来个例子

假如对一张表进行处理之后需要用另一张表存储其中的某些字段,则:

更多推荐




所有评论(0)