提示:这个方法是最近发现的,还没有深入的研究,如果有大佬熟悉这块的可以一起交流。

目录

前言

一、使用方法

1、在代码中生成条件

2、在方法中传入带有条件的 QueryWrapper

3、生成Service层和Mapper层方法

 4、XML文件中自定义SQL语句

二、使用此方法的好处


前言

        今天接到任务,测试修改接口,看见方法里竟然传了个QueryWrapper,对于小菜鸟的我还是没见过,感觉很有意思,记录下。

一、使用方法

1、在代码中生成条件

        逻辑涉及两个表的查询

            queryWrapper.
                    eq("aa.del_flag", "0").
                    eq("aa.audit_status", "3");
            queryWrapper.
                    eq("bb.del_flag","0").
                    eq("bb.invisible","0").

2、在方法中传入带有条件的 QueryWrapper

3、生成Service层和Mapper层方法

        mapper层中的方法设置参数名

List<Student> findList(@Param(Constants.WS) QueryWrapper<Student> queryWrapper, @Param("paramsMap") Map<String, Object> paramMap);

 4、XML文件中自定义SQL语句

        在sql需要添加where条件的地方加入${ws.customSqlSegment},其中ws是我们的参数名,在其后边点上customSqlSegment形成where条件

注意:${ws.customSqlSegment}函数中自带where.....我测试的时候就因为写这个接口的人多添加了个where而报错。

二、使用此方法的好处


        使用这个方法生成sql的where条件,我感觉比较好的地方就是在多表条件查询的时候,避免了写多个sql语句。比如我们根据数据库中两个表的条件来进行查询,当一个表中的字段为0的时候另一个表中也为0的时候进行某些操作。当一个表中的字段为1的时候另一个表中也为1的时候进行另外的操作,如果我们不使用上述的方法,那么就需要写两个sql,一个判断为0的一个判断为1的,当然实际肯定不能使用一个字段判断,要不直接用if进行判断再执行sql就好了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐