mybatis mysql 分页sql语句_使用mybatis分页查询并统计总数「建议收藏」

mybatis mysql 分页sql语句_使用mybatis分页查询并统计总数「建议收藏」今天在优化项目的时候,偶尔发现了一种分页查询的方法。其目的是,在分页查询的同时查出数据总记录数并实现模糊查询功能。并且,在以往的分页查询上,如果要使用模糊查询,则模糊查询出来的总记录数可能出现问题。使用改方法可以优化代码。本项目使用的是springboot,mybatis,druid连接池以下贴上源码:mybatis的xml文件①resultMap=”trainResultMap,count”注…

大家好,又见面了,我是你们的朋友全栈君。

今天在优化项目的时候,偶尔发现了一种分页查询的方法。其目的是,在分页查询的同时查出数据总记录数并实现模糊查询功能。并且,在以往的分页查询上,如果要使用模糊查询,则模糊查询出来的总记录数可能出现问题。使用改方法可以优化代码。

本项目使用的是springboot,mybatis,druid连接池

以下贴上源码:

3736015d23ab

mybatis的xml文件

① resultMap=”trainResultMap,count”注意: resultMap里有两个函数,第一个为多表关联的映射map的Id,第二个则是id为count的resultMap查询总记录数方法

② 这里使用了两条sql语句。首页通过默认条件查询数据并分页,并且提供模糊查询功能,且查询总记录数方法是在前一条sql语句基础上执行而成

3736015d23ab

service实现类

① baseMapper.queryPageByStuId用于调用dao方法

② (List) list.get(0)用于取返回的函数map集合的第一个函数List集合

③ ((List) list.get(1)).get(0)用于取返回函数map集合的第二个函数count数据总数

以下为踩坑记录:

3736015d23ab

后端报错

Error querying database. Cause: java.sql.SQLException: sql injection violation, multi-statement not allow报错原因为:在一个resultMap中执行了多条sql语句

解决方法:

1、首先在数据库配置中启动数据库执行多条sql语句操作

3736015d23ab

druid的url地址

在末尾添加   allowMultiQueries=true

2、在MybatisPlusConfig配置类中添加以下代码

3736015d23ab

MybatisPlusConfig.java

3 在数据源中添加以下代码

3736015d23ab

DynamicDataSourceFactory.java

支持多语句查询   druidDataSource.setProxyFilters(Arrays.asList(new MybatisPlusConfig().wallFilter()));

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137275.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月2日 上午10:00
下一篇 2022年6月2日 上午10:16


相关推荐

  • GitLib详细使用手册(附工具)

    GitLib详细使用手册(附工具)GitLib 详细使用手册 附工具 一 登录与注册首先肯定需要一个 gitlab 得账号 自动动手注册一个 有账户得直接登录即可二 创建群组 在这里插入图片描述 https img blog csdnimg cn png pic center 2 1 创建群组首先 登录自己的 gitlab 账户 点击上图右侧的 Newgroup 创建一个组 如下图所示 在这里插入图片描述 https img blog csdnimg cn

    2026年3月19日
    3
  • 用Manus做完3个任务后,我们发现它或许能替代实习生,但也会偷懒摆烂

    用Manus做完3个任务后,我们发现它或许能替代实习生,但也会偷懒摆烂

    2026年3月15日
    1
  • acwing-396. 矿场搭建(Tarjan点双连通分量)「建议收藏」

    acwing-396. 矿场搭建(Tarjan点双连通分量)「建议收藏」煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。请写一个程序,用来计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总数。输入格式输入文件有若干组数据,每组数据的第一行是一个正整数 N,表示工地的隧道数。接下来的 N 行每行是用空格隔开的两个整数 S 和 T,表示挖煤点 S 与挖煤点 T 由隧道直接连

    2022年8月10日
    10
  • 【路由器】Breed 介绍、刷入和使用

    【路由器】Breed 介绍、刷入和使用文章目录介绍文件说明刷入 Breed 通过 Breed 刷机其他功能参考资料介绍 Breed 是国内个人 hackpascal 开发的闭源 Bootloader 也被称为 不死鸟 因为有些官方升级固件自带 bootloader 如果从官方固件升级 会导致现有 bootloader 被覆盖 而当 Breed 更新固件时 它会自动删除固件附带的引导加载程序 因此可以防止 Breed 被覆盖 Breed 拥有以下特性 实时刷机进度 进度条能准确反映刷机进度 Web 页面快速响应最大固件备份速度 依 Fla

    2026年3月20日
    2
  • DPM恢复Exchange 2013数据库

    DPM恢复Exchange 2013数据库

    2021年9月14日
    53
  • curl 模拟 GET\POST 请求,以及 curl post 上传文件

    curl 模拟 GET\POST 请求,以及 curl post 上传文件curl模拟GET\POST请求,以及curlpost上传文件一般情况下,我们调试数据接口,都会使用一个postman的工具,但是这个工具还是有点大了。事实上,我们在调试一些小功能的时候,完全没有必要使用它。在命令行中,我们使用curl这个工具,完全可以满足我们轻量的调试要求。下面,我们来简单的说一下,curl的一些常见使用方法:curlGET请求cu…

    2022年7月27日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号