全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

mybatisplus模糊查询详解

发布时间:2023-11-25 13:58:36
发布人:xqq

一、模糊查询关键字

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月份的用户。

macoswindowserver

相关文章

linux安装字符集,linux 字符

linux安装字符集,linux 字符

2023-11-25
linux系统与本机共享,linux与主机共享文件

linux系统与本机共享,linux与主机共享文件

2023-11-25
dell安装linux系统步骤,戴尔电脑怎么安装linux系统

dell安装linux系统步骤,戴尔电脑怎么安装linux系统

2023-11-25
如何备份远程linux数据库,linux怎么备份数据库

如何备份远程linux数据库,linux怎么备份数据库

2023-11-25

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31