多查询条件接口怎么做

Deathlightning
  • 41

现在有一个需求,老师可以查看自己教过的学生列表,查询条件有班级、学期、学生姓名,课程名称,还要做分页查询,这样如果用一个接口就要传入最少五个参数(classId,semesterId,studentName,courseName,pageNum,pageSize),因为是组合查询,所以分成好几个接口也不现实,不知道各位大佬是怎么处理这种多条件查询的。

回复
阅读 3.4k
4 个回答
✓ 已被采纳

把 classId,semesterId,studentName,courseName,pageNum,pageSize这五个属性放在接口dto类中,前端使用json传输数据,后台直接转化为dto类,mybatis的xml文件的select标签中parameterType属性用你写的这个dto类,里面加上判断语句就行,
类似于这种

<if test="id != null and id != ''">
                and c.id = #{id}
            </if>
这样就可以传值为空或者为null的参数了     

接口的入参多个(后期有可能增加的话),建议入参定义成Map把,好扩展;
至于实现,一条SQL搞不定的画,可以多SQL实现(不影响效率的话);或者考虑存储过程实现

  1. 接受多个参数
  2. 判断参数组装查询

哪一步出现了问题呢?

我觉得你的这个业务数据量应该不大,可以用联表查询。将参数封装成一个类,然后传入持久层查询就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏