多重筛选引发取巧的设计思路

本文分享了解决多层筛选问题的设计思路。通过创建通用接口方法,利用工具类进行判空处理,实现一个方法处理不同数量的筛选条件,从而避免了大量重复SQL和复杂的条件判断。虽然这种方法可能导致执行效率不高且参数管理复杂,但具有较好的可扩展性,为后续类似问题提供了解决方案。
摘要由CSDN通过智能技术生成

想和大家分享一下现在喜悦的心情,因为解决了一个比较刁钻的问题,很开心。

今天在写代码的时候,要实现一个功能:多层筛选。条件是这样的:我们可以分别通过学生学号、学生姓名以及班级名称,来输出查找到的学生列表,也可以依靠其中的两个条件来查找(此时另外一个条件值为null),当然也能够使用三个条件来查找。

第一个思路就是,分别判断这三个条件是否为空,然后分别调用三个已有的SQL方法。

    /**
     * 查询指定id的学生信息
     * @param id 学生id
     * @return 学生实体
     */
    Student queryById(Integer id);

    /**
     * 查询某班所有学生
     * @param class_id 班级id
     * @return 学生实体列表
     */
    List<Student> queryByClassId(Integer class_id);

    /**
     * 通过名字查询学生(可能不止一个)
     * @param name 学生姓名
     * @return 学生实体列表
     */
    List<Student> queryByName(String name);

这个思路很快就被我否决了,原因就是太麻烦,判断太多,最后还得整理结果,绝对的大麻烦。

第二个思路,辛苦一点,写的SQL方法多一些,例如按照学生姓名和学生学号联合查询;学生姓名和班级联合查询等,但是我转头又想了想,也否决了,因为也很麻烦——目前而言是三个条

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NewReErWen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值