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


相关推荐

  • 微信公众号平台开发教程_微信公众号制作教程

    微信公众号平台开发教程_微信公众号制作教程关键字:微信公众平台开发入门作者:贝创工作室原文:http://www.cnblogs.com/imaker/p/5491433.html背景知识:微信公众平台的开发需要有一定的PHP基础知识,PHP是一种HTML内嵌式的语言,广泛用于网站开发。微信服务器和开发者的服务器间有两种数据传输方式,分别是XML和JSON。其中XML主要用在接受发送普通消息和事件推送…

    2025年5月23日
    1
  • 媒体类型mediaType

    媒体类型mediaType媒体类型决定浏览器将以何种形式对资源进行解析。常见的媒体格式类型(/)如下:text/html:HTML格式text/plain:纯文本格式image/gif:gif图片格式application/pdf:pdf格式application/octet-stream:二进制流数据(如常见的文件下载)…复制代码主要的使用场景如下:HTTP头部的ContentType、伪协议的data:Content-TypeContent-Type实体头部用于指示资源的MIME类型mediatype。

    2022年5月26日
    34
  • bwapp通关(全完结)

    bwapp通关(全完结)bwapp/A1-Injection/HTMLInjection-Reflected(GET)HTMLInjection-Reflected(POST)HTMLInjection-Reflected(CurrentURL)HTMLInjection-Stored(Blog)iFrameInjectionLDAPInjection(Search)【待开化】———————-bWAPPv2.2—————–

    2022年9月23日
    0
  • Pytest(1)安装与入门[通俗易懂]

    Pytest(1)安装与入门[通俗易懂]pytest介绍pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它

    2022年7月30日
    1
  • JavaScript中数组Array方法详解[通俗易懂]

    JavaScript中数组Array方法详解[通俗易懂]ECMAScript3在Array.prototype中定义了一些很有用的操作数组的函数,这意味着这些函数作为任何数组的方法都是可用的。1、Array.join()方法Array.join()方

    2022年7月4日
    16
  • 常见状态码

    常见状态码常见状态码

    2022年4月22日
    44

发表回复

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

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