Mybatis plus中的like查询问题

目录
  • Mybatis plus中like查询问题
    • 解决方法也很简单,换个写法
  • Mybatis plus中like使用说明
    • like的四种用法

Mybatis plus中like查询问题

又谈到了Mybatis plus了,真的很是痛心疾首,在做模糊查询的时候出现了一个问题,版本还是2.0.8,我觉得大问题没有小问题不断吧!

上代码

        @MethodAnnot()
        public static List<VwUserRole> getVwUserRoleByList(VwUserRole      vwUserRole){  
              return vwUserRoleService.selectList(
                        new EntityWrapper<VwUserRole>(vwUserRole).like("username",vwUserRole.getUsername(), SqlLike.DEFAULT));
        }

模糊查询USER,讲道理来说是没有问题的,下面我们查一下这个SQL是什么

SELECT id,username,del_flag AS delFlag FROM vw_user_role WHERE username='a' AND del_flag='0' AND (username LIKE '%a%')

应该一下就可以看的出来 这样的查询语法怎么可能查询的出来数据呢?我觉得这算是一个Mybatis plus的Bug的吧!

解决方法也很简单,换个写法

         @MethodAnnot()
        public static List<VwUserRole> getVwUserRoleByList(VwUserRole vwUserRole){
                EntityWrapper ew=new EntityWrapper();
                ew.setEntity(new VwUserRole());
                ew.eq("del_flag",'0');
                ew.like("username",vwUserRole.getUsername(), SqlLike.DEFAULT);
                return vwUserRoleService.selectList(ew);
        }

我们看一下这样查询的SQL是什么

SELECT id,username,del_flag AS delFlag FROM vw_user_role WHERE (del_flag = 0 AND username LIKE '%a%')

这样是一点问题也没有的哦,应该能看出问题在那里吧?哈哈哈,不说了。

感觉还有好多地方会有坑等着我,踩一个坑记录一下吧!!!

Mybatis plus中like使用说明

like的四种用法

like(boolean condition, String column, String value)
like(String column, String value)
like(boolean condition, String column, String value, SqlLike type)
like(String column, String value, SqlLike type)
  • condition 是一些条件,符合才可加上你的sql
  • column为 数据库属性
  • value为 你传入的值
  • type 为 % 拼在那边:
  • SqlLike 为枚举类
    LEFT("left", "左边%"),
    RIGHT("right", "右边%"),
    CUSTOM("custom", "定制"),
    DEFAULT("default", "两边%");

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Mybatis-plus selectByMap条件查询方式

    目录 selectByMap条件查询 selectMaps方法返回值字段为空不显示问题 1.application.yaml设置mybayisPlus 2.添加call-setters-on-nulls: true之后 selectByMap条件查询 List<T> selectByMap(@Param("cm") Map<String, Object> columnMap); 如上,可以看到BaseMapper中的selectByMap接口需要的参数是Map&

  • MyBatisPlus-QueryWrapper多条件查询及修改方式

    目录 gt.ge.lt.le.isNull.isNotNull eq.ne between.notBetween allEq like.notLike.likeLeft.likeRight in.notIn.inSql.notinSql.exists.notExists or.and 嵌套 or.嵌套 and orderBy.orderByDesc.orderByAsc last 指定要查询的列 set.setSql gt.ge.lt.le.isNull.isNotNull 大于 > 例: gt

  • 如何使用mybatis-plus实现分页查询功能

    今天就跟大家聊聊有关使用mybatis-plus如何实现分页查询功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获. 引入依赖: <!-- 引入mybatisPlus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <ver

  • MybatisPlus查询条件为空字符串或null问题及解决

    目录 查询条件为空字符串或null问题 问题描述 解决办法 查询表的时候有些字段为空问题 亲测,已经解决 查询条件为空字符串或null问题 问题描述 工作种当使用mybatisplus框架进行条件查询时,会出现参数为空字符串或者null也走查询条件,写一篇文章记录一下. String name = "张三"; LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); lqw.eq(User::g

  • 一文搞懂Mybatis-plus的分页查询操作

    目录 1. 简单说明 2. 介绍说明 3. 完整配置类代码 4. 示例代码 5. 最后总结 1. 简单说明 嗨,大家好!今天给大家分享的是Mybatis-plus 插件的分页机制,说起分页机制,相信我们程序员都不陌生,今天,我就给大家分享一下Mybatis-plus的分页机制,供大家学习和Copy. 2. 介绍说明 如果你想看代码,可以直接跳到代码区域,这里只是一些简单的说明,如果你想学习,建议可以看看这一块的任容. 本章节将介绍 BaseMapper 中的分页查询,BaseMapper 接口提

  • Mybatis plus中使用in查询出错如何解决

    不想看我bb的直接点上面的 ''解决方法'' 我的情况是这样的,在使用mybatis plus提供的QueryWrapper方法里的in查询时,我的参数为类似"1,2,3,4"这样的字符串 //要查的参数 String masterIds = "81554,5654,55948,48945"; QueryWrapper<FpjyPauperInfo> pauperqw = new QueryWrapper<>(); pauperqw.in(&

  • Mybatis plus中的like查询问题

    目录 Mybatis plus中like查询问题 解决方法也很简单,换个写法 Mybatis plus中like使用说明 like的四种用法 Mybatis plus中like查询问题 又谈到了Mybatis plus了,真的很是痛心疾首,在做模糊查询的时候出现了一个问题,版本还是2.0.8,我觉得大问题没有小问题不断吧! 上代码         @MethodAnnot()         public static List<VwUserRole> getVwUserRoleByList(

  • MyBatis中的模糊查询语句

    其实就只有一条sql语句 <select id = "search" resultType = "material"> select material_id,material_num,material_name,material_type,material_model,id from material where material_name like '%${value}%' or material_num like '%${value}%' </

  • MyBatis中多条件查询商品的三种方法及区别

    目录 一.Sql语句设置多个参数有几种方式 二.代码附上 一.Sql语句设置多个参数有几种方式 1.散装参数:需要使用@Param标记Sql语句中占位符处的名称例如 #{name} 2.实体类封装参数 只需要保证Sql中的参数名和实体类属性名对应上,即可设置成功BrandMapper.xml中的SQL语句不用动,把TestBrandMapper中的代码修改即可 3.Map集合 只需要保证Sql中的参数名和Map集合的键的名称对应上,即可设置成功.BrandMapper.xml中Sql语句不用改

  • 利用Mybatis向PostgreSQL中插入并查询JSON字段

    目录 应用场景介绍 数据insert 数据select BATCH 批量插入 前言: 这里我使用的是TimescaleDB,加了一个时间戳字段,不过没差.关于PostgreSQL中Json数据类型的操作,可以参考官网. 应用场景介绍 将TCP发过来的数据包(通过消息队列发过来)解析出数据(一个数据包含有多帧,一帧中含有多条信息),并和本地规则表的格式对应起来.以JsonLineMsg实体类代表对应的一帧数据: package tsdb.entity; import lombok.AllArgsC

  • Mybatis Plus中的流式查询案例

    目录 Mybatis Plus流式查询 通用流式查询 Mybatis Plus大数据量流式查询 Mybatis Plus流式查询 mybatis plus 中自定义如下接口,就可以实现流式查询,mybatis 中同样适用. @Select("select * from t_xxx t ${ew.customSqlSegment}") @Options(resultSetType = ResultSetType.FORWARD_ONLY, fetchSize = 1000) @Resul

  • Mybatis中使用in()查询的方式详解

    目录 1 使用数组方式 2 使用List集合的方式 3 第三种我们使用Mybatis-plus框架的条件构造器来进行查询 附:Mybatis-plus的条件构造器详细使用教程 总结 这篇文章我会演示几种mybatis中使用in查询的方式. 1 数组.字符串 2 集合 3 使用Myabtis-plus框架的条件构造器来实现 我们在mysql中使用in查询的方式是这样的 那在mybatis中我们使用<foreach>标签来实现包含查询 1 使用数组方式 Mapper: Mapper.xml: &l

  • 基于mybatis高级映射多对多查询的实现

    1.同以前一样,首先给一个使用多对多的需求, 要查询用户以及用户所购买的商品信息,经过分析用户和商品数据库级别没有任何关系,用户和商品需要建立关系,要通过订单,订单明细建立关系.根据这个需求,可以分析出需要查询的主表为: 查询主表:用户表 查询关联表:由于商品和用户没有关系,通过订单和订单明细进行关联,所以得出关联表是:orders订单表,orderDetail订单明细表,items商品表.这样的话,sql该如何去写?这样写: select orders.*, t_user.id user_id

  • 整理Java的MyBatis框架中一些重要的功能及基本使用示例

    基本用法回顾: SQL语句存储在XML文件或Java 注解中.一个MaBatis映射的示例(其中用到了Java接口和MyBatis注解): package org.mybatis.example; public interface BlogMapper { @Select("select * from Blog where id = #{id}") Blog selectBlog(int id); } 执行的示例: BlogMapper mapper = session.getMapp

  • Mybatis查不到数据查询返回Null问题

    mybatis突然查不到数据,查询返回的都是Null,但是 select count(*) from xxx查询数量,返回却是正常的. Preparing: SELECT id,a9004,a9005,a9015 FROM a90 where a9010 = ? ORDER BY id LIMIT 1 [DEBUG] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139):http-bio-8080

随机推荐