Java 多对多 表联合查询 中 根据 条件 查询指定内容
关于 多对多 表联合查询 中的 mapper 层的部署看一下链接
https://blog.csdn.net/YKenan/article/details/88910730
很神奇,用了三次 for 循环
下面的代码表示:
- 有一个类:Y
- 有另一个类:Kenan
- 一个 Y 可以含有多个 Kenan
- 一个 Kenan 可以含有多个 Y
- 这就需要建立另一个类:YKenan(多对多,建立外键等)
- 通过 Y 中含有 “Y” 的字符列,查出多个第一批数据,再通过 Y 外键连接到 YKenan 类,通过里一个外键连接到 Kenan 类,这样就得到了相应的第二批数据,而第一批数据中每个数据都包含多少个 Kenan 对象(也就是第二批数据中零个一个或者多个数据),再通过这个对象查出所需要的列
List<Y> listSelectByKenan = yService.selectByInstructor("Y%");
model.addAttribute("listSelectByKenan", listSelectByKenan);
List<List<String>> listYNameByKenan = new ArrayList<List<String>>();
for (int i = 0; i < listSelectByKenan.size(); i++) {
List<String> list_kenanName = new ArrayList<String>();
List<YKenan> selectByYKenanMapByYName = yKenanService.selectByYKenanMapByYName(listSelectByKenan.get(i).getYName());
for (YKenan yKenan : selectByYKenanMapByYName) {
for (Kenan kenan : yKenan.getYKenanKenan()) {
list_kenanName.add(kenan.getKenanName());
}
}
listYNameByKenan.add(ist_kenanName);
}
model.addAttribute("listYNameByKenan", listYNameByKenan);