千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > mybatisplus模糊查询详解

mybatisplus模糊查询详解

来源:千锋教育
发布人:xqq
时间: 2023-11-25 13:58:36 1700891916

一、模糊查询关键字

mybatisplus模糊查询可以使用关键字like,like是SQL语言中模糊查询的关键字,其使用方式如下:

QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张%");
List userList = userMapper.selectList(queryWrapper);

以上代码查询名字以张开头的用户。

如果想查询包含“张”的用户,可以将“%”放在两个参数中间:

QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "%张%");
List userList = userMapper.selectList(queryWrapper);

注意:like查询不支持前后模糊查询,例如查询“开发工程师”中包含“工程师”的记录,需要使用下面解释的SQL的like。

二、模糊查询like

mybatisplus还支持SQL的like查询,可以通过在like参数前加入“CONCAT('%', ?, '%')”实现:

QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.apply("CONCAT('%', name, '%') like {0}", "工程师");
List userList = userMapper.selectList(queryWrapper);

三、模糊查询分页排序

mybatisplus模糊查询支持分页,通过Page分页参数可以轻松实现:

Page userPage = new Page<>(1, 10);
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张%");
queryWrapper.orderByAsc("age");
List userList = userMapper.selectPage(userPage, queryWrapper).getRecords();

以上代码查询名字以张开头的用户并且按照年龄升序排序。

四、模糊查询特殊符号

mybatisplus模糊查询使用特殊符号“{}”来提供查询条件

QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "{%张%}")
    .or().like("name", "{%李%}");
List userList = userMapper.selectList(queryWrapper);

五、模糊查询两个字段

mybatisplus模糊查询可以同时查询两个字段,如下:

QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张%")
    .or().like("email", "121%");
List userList = userMapper.selectList(queryWrapper);

以上代码查询名字以张开头或者邮箱包含121的用户。

六、模糊查询问题

mybatisplus模糊查询可能存在忽略大小写的问题,我们可以通过配置来解决,如下:

MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new HamsterJdbcInterceptor());
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setPlugins(interceptor);
//xml中的配置

    mysql


    
        
        
    
    
        
        
        
        
        
    

以上代码实现忽略大小写查询。

七、模糊查询notlike

mybatisplus模糊查询可以使用notlike查询,如下:

QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.notLike("name", "张%");
List userList = userMapper.selectList(queryWrapper);

以上代码查询名字不以张开头的用户。

八、模糊查询不区分大小写

mybatisplus模糊查询可以使用忽略大小写的查询方式,如下:

QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张%").setCaseInsensitive(true);
List userList = userMapper.selectList(queryWrapper);

以上代码查询名字以张开头,忽略大小写。

九、模糊时间查询

mybatisplus模糊查询可以使用时间范围查询,如下:

QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张%")
    .between("create_time", "2021-06-01 00:00:00", "2021-06-30 23:59:59");
List userList = userMapper.selectList(queryWrapper);

以上代码查询名字以张开头,并且创建时间在2021年6月份的用户。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT