阿怪呀 2021-06-15 22:59 采纳率: 50%
浏览 375
已采纳

mybatis-plus分页模糊查询遇到问题

mp的版本使用的是3.3.1 

分页插件配置

调用位置

//讲师分页列表
    @ApiOperation(value = "讲师分页列表" )
    @GetMapping("/admin/edu/teacher/list/{page}/{limit}")
    public R listPage(@ApiParam("当前页码") @PathVariable Long page,
                      @ApiParam("每页记录数") @PathVariable Long limit,
                      @ApiParam("查询对象") TeacherQueryVo teacherQueryVo){

        Page<Teacher> pageParam = new Page<>(page, limit);
        IPage<Teacher> pageModel = teacherService.selectPage(pageParam , teacherQueryVo);
        List<Teacher> records = pageModel.getRecords();
        long total = pageModel.getTotal();
        return R.ok().data("total",total).data("rows",records);
    }

具体实现

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.shanx.guli.service.edu.entity.Teacher;
import com.shanx.guli.service.edu.entity.vo.TeacherQueryVo;
import com.shanx.guli.service.edu.mapper.TeacherMapper;
import com.shanx.guli.service.edu.service.TeacherService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

/**
 * <p>
 * 讲师 服务实现类
 * </p>
 *
 * @author shanx
 * @since 2021-06-15
 */
@Service
public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> implements TeacherService {

    @Override
    public IPage<Teacher> selectPage(Page<Teacher> pageParam, TeacherQueryVo teacherQueryVo) {

        //显示分页查询列表
        //1.排序: 按照sort字段排序
        QueryWrapper<Teacher> queryWrapper = new QueryWrapper<>();
        queryWrapper.orderByAsc("sort");

        //2.分页查询
        if(teacherQueryVo == null){ //没有查询条件 直接返回分页
            return baseMapper.selectPage(pageParam,queryWrapper);
        }

        //3.条件查询
        String name = teacherQueryVo.getName();
        Integer level = teacherQueryVo.getLevel();
        String joinDateBegin = teacherQueryVo.getJoinDateBegin();
        String joinDateEnd = teacherQueryVo.getJoinDateEnd();

        if(!StringUtils.isEmpty(name)){ //name不为空
            queryWrapper.likeRight("name", name);
        }

        if(level != null){
            queryWrapper.eq("level", level);
        }

        if(!StringUtils.isEmpty(joinDateBegin)){
            queryWrapper.ge("join_date", joinDateBegin);
        }

        if(!StringUtils.isEmpty(joinDateEnd)){
            queryWrapper.le("join_date", joinDateBegin);
        }

        Page<Teacher> teacherPage = baseMapper.selectPage(pageParam, queryWrapper);

        return baseMapper.selectPage(pageParam,queryWrapper);
    }
}

swagger测试

日志输出

Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3f379507] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@1127690788 wrapping com.mysql.cj.jdbc.ConnectionImpl@3ed529c] will not be managed by Spring
JsqlParserCountOptimize sql=SELECT  id,name,intro,career,level,avatar,sort,join_date,is_deleted AS deleted,gmt_create,gmt_modified  FROM edu_teacher 
 WHERE  is_deleted=0

AND (name LIKE ?) ORDER BY sort ASC
==>  Preparing: SELECT COUNT(1) FROM edu_teacher WHERE is_deleted = 0 AND (name LIKE ?) 
==> Parameters: 周%(String)
<==    Columns: COUNT(1)
<==        Row: 0
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3f379507]
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@28c2fa38] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@263894321 wrapping com.mysql.cj.jdbc.ConnectionImpl@3ed529c] will not be managed by Spring
JsqlParserCountOptimize sql=SELECT  id,name,intro,career,level,avatar,sort,join_date,is_deleted AS deleted,gmt_create,gmt_modified  FROM edu_teacher 
 WHERE  is_deleted=0

AND (name LIKE ?) ORDER BY sort ASC
==>  Preparing: SELECT COUNT(1) FROM edu_teacher WHERE is_deleted = 0 AND (name LIKE ?) 
==> Parameters: 周%(String)
<==    Columns: COUNT(1)
<==        Row: 0
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@28c2fa38]

数据库的预查询

 

根据数据库查询结果,mp的第一次查询应该返回2,但是不知道为什么给我返回了0,导致分页模糊查询失败,求大佬解决!!!

  • 写回答

3条回答 默认 最新

  • 阿怪呀 2021-06-15 23:11
    关注

    解决了

    传入数据库乱码了应该

    加入配置characterEncoding=utf8

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题