您的位置:首页 > 科技 > 能源 > 黑马_成都工业设计公司_有趣的软文_河南企业网站推广

黑马_成都工业设计公司_有趣的软文_河南企业网站推广

2024/12/27 1:25:24 来源:https://blog.csdn.net/zhaoyaxuan001/article/details/144264595  浏览:    关键词:黑马_成都工业设计公司_有趣的软文_河南企业网站推广
黑马_成都工业设计公司_有趣的软文_河南企业网站推广

1. 简介

        PageHelper是Mybatis-Plus中的一个插件,主要用于实现数据库的分页查询功能。其核心原理是将传入的页码和条数赋值给一个Page对象,并保存到本地线程ThreadLocal中,接下来,PageHelper会进入Mybatis的拦截器环节,在拦截器中获取并处理刚才保存在ThreadLocal中的分页参数。这些分页参数会与原本的SQL语句和内部已经定义好的SQL进行拼接,从而完成带有分页处理的SQL语句的构建。

2. 现象描述

 2.1 代码

// 调用位置
PageHelper.startPage(pageNum,pageSize);
List<MyObject> result = customMapper.getList(taskId,name);// Mapper中方法的定义
List<MyObject> getList(@Param("taskId")String taskId,@Param("name")String name);// xml定义SQL语句
<select id="getList" resultType="MyObject">select * from myTable where task_id = #{taskId}<if test="name != null">and name= #{name}</if>order by id desc
</select>

2.2 异常信息

3. 原因

        PageHelper在进行SQL语句解析时,若在where子句中遇到连续多于两个的\n,则直接截断返回,导致语句出错。2.1代码中的where子句在task_id=?\n之后,出现连续4个\n导致语句被截断。

4. 解决方案

   方案1:where子句中不要出现空行即可;

  方案2: 在每个空行中输入空格,避免多个连续\n出现;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com