mybatis plus中查询时打印查询条件

方法1:

mybatis plus 里面QueryWrapper输出条件语句,会有很多个方法,它们各自的作用有哪些:

        LambdaQueryWrapper<UserInfo>  temp = new LambdaQueryWrapper<>();
        temp.eq(UserInfo::getUserRole,1);
        temp.like(UserInfo::getUserNick,"测试");
        temp.eq(UserInfo::getAge,18);
        //打印它的输出语句
        log.info("测试的1:"+temp.getCustomSqlSegment());
        log.info("测试的2:"+temp.getExpression());
        log.info("测试的3:"+temp.getSqlSegment());
        log.info("测试的4:"+temp.getSqlSet());
        log.info("测试的5:"+temp.getParamAlias());
        log.info("测试的6:"+temp.getSqlSelect());
        log.info("测试的7:"+temp.getEntity());
        log.info("测试的8:"+temp.getParamNameValuePairs());
        log.info("测试的9:"+temp.getClass());
        List<UserInfo> userInfoList22 = userInfoMapper.selectList(temp);




: Completed initialization in 1 ms
: 测试的1:WHERE userRole = #{ew.paramNameValuePairs.MPGENVAL1} AND userNick LIKE #{ew.paramNameValuePairs.MPGENVAL2} AND age = #{ew.paramNameValuePairs.MPGENVAL3}
: 测试的2:com.baomidou.mybatisplus.core.conditions.segments.MergeSegments@1aa99b38
: 测试的3:userRole = #{ew.paramNameValuePairs.MPGENVAL1} AND userNick LIKE #{ew.paramNameValuePairs.MPGENVAL2} AND age = #{ew.paramNameValuePairs.MPGENVAL3}
: 测试的4:null
: 测试的5:ew
: 测试的6:null
: 测试的7:null
: 测试的8:{MPGENVAL3=18, MPGENVAL2=%测试%, MPGENVAL1=1}
: 测试的9:class com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper

可以看到输出结果,一般可以选择temp.getCustomSqlSegment() 和temp.getParamNameValuePairs() 打印出查询条件和参数

方法2:

在项目配置文件application.yml 中增加配置

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #mybatis-plus配置控制台打印完整带参数SQL语句
    map-underscore-to-camel-case: false # 设置字段不使用下划线方式

效果展示:

Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@13d38ace] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@1354439565 wrapping com.mysql.jdbc.JDBC4Connection@3dc43376] will not be managed by Spring
==>  Preparing: SELECT userId,userNick,address,mobile,userName,openId,unionId,password,age,userRole,isDelete,createTime,updateTime FROM userInfo WHERE userRole = ? AND userNick LIKE ? AND age = ? 
==> Parameters: 1(Integer), %测试%(String), 18(Integer)
<==      Total: 0
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@13d38ace]
 INFO 58464 --- [nio-8082-exec-2] c.c.w.u.s.impl.UserInfoServiceImpl       : wrapper.toString():{}
 INFO 58464 --- [nio-8082-exec-2] c.c.w.u.s.impl.UserInfoServiceImpl       : wrapper.getSqlSelect():null
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1ee75f18] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@140977064 wrapping com.mysql.jdbc.JDBC4Connection@3dc43376] will not be managed by Spring
==>  Preparing: SELECT userId,userNick,address,mobile,userName,openId,unionId,password,age,userRole,isDelete,createTime,updateTime FROM userInfo WHERE (mobile REGEXP '^1') AND userRole = ? 
==> Parameters: 1(Integer)
<==    Columns: userId, userNick, address, mobile, userName, openId, unionId, password, age, userRole, isDelete, createTime, updateTime
<==        Row: 1, 张三测试, 北京市朝阳区, 15566668888, 2, o11, u1, null, 0, 1, 0, 2022-06-06 16:01:00.0, 2022-06-06 16:01:00.0
<==        Row: 2, 李四测试, 北京市朝阳区, 15566668888, 2, o12, u2, null, 0, 1, 0, 2022-06-06 16:02:44.0, 2022-06-06 16:02:44.0
<==        Row: 3, 王五测试, 北京北京, 15566669999, 2, o12, u3, null, 0, 1, 0, 2022-06-06 16:08:08.0, 2022-06-06 16:08:08.0
<==        Row: 4, 王六测试, 北京北京, 15566669999, 3, o14, u4, null, 0, 1, 0, 2022-06-06 16:17:33.0, 2022-06-06 16:17:33.0
<==        Row: 5, 王七测试, 北京北京, 15566669999, 3, o15, u5, null, 0, 1, 0, 2022-06-06 16:23:05.0, 2022-06-06 16:23:05.0
<==        Row: 6, 王七测试, 北京北京, 15566669999, 5, 016, u6, null, 0, 1, 0, 2022-06-06 16:24:02.0, 2022-06-06 16:24:02.0
<==        Row: 8, 王八测试, 北京北京, 15566669999, 5, o18, u8, null, 0, 1, 0, 2022-06-06 16:34:49.0, 2022-06-06 16:34:49.0
<==        Row: 10, 老九八测试, 北京海淀, 15566669999, 6, o20, u10, null, 0, 1, 0, 2022-06-06 17:03:20.0, 2022-06-06 17:03:20.0
<==        Row: 14,11, 北京海淀, 15566669999, 1, null, null, null, 0, 1, 0, 2022-06-06 17:38:16.0, 2022-06-06 17:38:16.0
<==      Total: 9
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1ee75f18]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis Plus提供了条件构造器来简化条件查询。在application.yml文件,你可以通过配置mybatis-plus的日志控制台输出,以及关闭启动图标。 下面是一个使用条件构造器进行条件查询的示例代码: ```java @SpringBootTest class Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ //模拟页面传递过来的查询数据 UserQuery uq = new UserQuery(); uq.setAge(10); uq.setAge2(30); LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); lqw.lt(null!=uq.getAge2(), User::getAge, uq.getAge2()); lqw.gt(null!=uq.getAge(), User::getAge, uq.getAge()); List<User> userList = userDao.selectList(lqw); System.out.println(userList); } } ``` 在这个示例,首先创建了一个LambdaQueryWrapper对象,并使用lt方法和gt方法设置了查询条件。然后使用selectList方法执行查询,并打印结果。通过这种方式,我们可以简化复杂的SQL语句,提升开发效率。 另外,使用条件构造器进行条件查询有几个常用的方法: - eq方法用于等于条件查询,即"="操作符。 - lt方法用于小于条件查询,即"<"操作符。 - gt方法用于大于条件查询,即">"操作符。 通过这些方法的组合,我们可以构造出复杂的查询条件来满足不同的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java开发学习(四十二)----MyBatisPlus查询语句之条件查询](https://blog.csdn.net/FaithWh/article/details/128893925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [MybatisPlus条件查询方法全解](https://blog.csdn.net/weixin_45529338/article/details/130448579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值