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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LaTeX:引号

    LaTeX:引号LaTeX;LaTeX引号;LaTeX单引号;LaTeX双引号。

    2022年6月25日
    52
  • Android StrictMode学习

    Android StrictMode学习最新的Android平台中(Android2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode)。这个类可以用来帮助开发者改进他们编写的应用,并且提供了各种的策略,这些策略能随时检查和报告开发者开发应用中存在的问题,比如可以监视那些本不应该在主线程中完成的工作或者其他的一些不规范和不好的代码。  StrictMode有多种不同的策略,每一种策

    2022年5月1日
    45
  • java一种集合_java创建集合

    java一种集合_java创建集合深入浅出学Java——HashMap哈希表(hashtable)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。一、什么是哈希表在讨论哈希表之前,我们先大概了解下其他数据结构在新增,…

    2025年10月23日
    2
  • 如何解决eclipse乱码问题?「建议收藏」

    如何解决eclipse乱码问题?「建议收藏」方法一:代码里面进行改变编码1.编码方式的gbk和utf不同,不可以互相转换,只有byte和utf或者byte和gbk之间的转换,之间的转码如下:2.我们还可以使用另一种转码方式来转码,具体如下:3.如果这两种方法,你都试验过,还没有转码成功的话,那就要看看你的控制台或者页面编码方式了:方法二:编码方式,控制台修改1.Window->Preferences…

    2022年5月25日
    34
  • Pytest(6)重复运行用例pytest-repeat[通俗易懂]

    Pytest(6)重复运行用例pytest-repeat[通俗易懂]前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,

    2022年7月28日
    7
  • string转map_中将转业可以任省长吗

    string转map_中将转业可以任省长吗暴力的直接Map对象toString()存,后面取出是就是用再转换为MapString转Map:JSONObjectjsonobject=JSONObject.fromObject(str);rMap=(Map<String,Object>)jsonobject;但很多时候并不能直接将Map对象的toString()而是应该转换为JsonObject后再调用toString()后存入就正常了Map<String,Object>map=newHashMa

    2025年8月31日
    5

发表回复

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

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