如何实现Springboot+mybaitis动态查询与关联查询?


之前总结过mybaitis的关联查询与mybaitis动态查询,今天正好项目中有同时用到这两种查询,通过这个需求,总结一下,希望可以帮助到大家

1、 大致的需求如下:

(1)如图所示实现搜索功能,其中可以按照项目分类 或 项目预算 或 发布时间 或 项目的名称进行搜索功能

 如何实现Springboot+mybaitis动态查询与关联查询?_第1张图片

(2)其中如上图所示画红框的部分,项目预算需要通过字典表进行查找,如下字典表:

如何实现Springboot+mybaitis动态查询与关联查询?_第2张图片

2、 实现步骤如下:

(1)Controller中:

如何实现Springboot+mybaitis动态查询与关联查询?_第3张图片

在controller中调用service中的业务方法。

(2)service中:

如何实现Springboot+mybaitis动态查询与关联查询?_第4张图片

在service中判断前端是否传过来要搜素的条件,如果没传就为查询全部,反之按条件查询。

注:其中的分页功能就不多做介绍,会单独的进行总结。

  (2)mapper中:

(2)mapper.xml中:

  动态查询以及关联查询最重要的就是写mapper中的sql语句,如图所示为该需求的sql语句。

l  如下图1中mapper中传过来的为map类型,注释需要对这个map中的数据进行操作。

l  如下图2中就是关联查询,它是必要的条件,所以不加入动态查询,它的查询条件为项目预算和项目发布的状态。

l  如下图3中为mapper中传过来map中的一个数组,通过技能标签数组进行查询,此时需要遍历该数组,用foeach的方式遍历。

l  如下图4中为通过时间短进行查询,该方法已在之前总结过的时间段查询中总结过,可以查看之前总结的。

l  如下图5中通过项目创建时间进行排序。

 如何实现Springboot+mybaitis动态查询与关联查询?_第5张图片

3、 总结:

对于复杂的sql查询,会觉得手忙脚乱,静下心来分析清楚,分步骤做,会觉得迎刃而解。

 

 

 

 

 

 

你可能感兴趣的:(SpringBoot)