通用mapper如何处理多表条件查询通过list封装(强烈不推荐)(一对一,一对多)

一、思路1:在service封装通过list的组合,强烈不建议,有性能问题,例如:

@Autowired
    private StudentDao studentDao;
    @Autowired
    private Stu_labelDao stu_labelDao;
    @Autowired
    private CityDao cityDao;
    @Autowired
    private ClazzDao clazzDao;
    @Autowired
    private GroupDao groupDao;
    @Autowired
    private LabelDao labelDao;

    @Test
    public void testQuesyAllStudent(){
        List<Student> students = studentDao.selectAll();
        for (Student student:students){
            
            //通用Mapper的dao方法  select(Object o),根据对象非空属性做条件查询查询
            //city属性
            List<City> cities = cityDao.select(student.getCity());
            City city = cities.get(0);
            student.setCity(city);
            
            //clazz属性
            List<Clazz> clazzes = clazzDao.select(student.getClazz());
            Clazz clazz = clazzes.get(0);
            student.setClazz(clazz);
            
            //group属性
            List<Group> groups = groupDao.select(student.getGroup());
            Group group = groups.get(0);
            student.setGroup(group);
            
            //label集合
            Stu_label stu_label = new Stu_label();
            stu_label.setSid(student.getId());
            List<Stu_label> stu_labels = stu_labelDao.select(stu_label);
            List<Label> labels = new ArrayList<>();
            for (Stu_label s:stu_labels){
                Label label = labelDao.selectByPrimaryKey(s.getLid());//主键策略,根据主键查询
                labels.add(label);
            }
            student.setLabels(labels);
        }

    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值