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


相关推荐

  • c语言socket 释放,C语言socket编程

    c语言socket 释放,C语言socket编程8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?[codelanguage=”cpp”]structsockaddr{unsignedshortsa_family;charsa_data[14];};[/code]这是一个16字节大小的结构(2+14),sa_family可以认为是socketaddressfamily的缩写,也可能被简写成AF…

    2022年7月13日
    15
  • 9款最好用的MySQL数据库客户端图形界面管理工具,第三款我用了10年

    9款最好用的MySQL数据库客户端图形界面管理工具,第三款我用了10年MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,这里我介绍几个经常使用的MySQL图形化管理工具,供大家参考。MySQL是一个非常流行的小型关系型数据

    2022年7月1日
    24
  • 举例说明一下怎么算是第一范式、第二范式、第三范式?

    举例说明一下怎么算是第一范式、第二范式、第三范式?数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。设计范式是不是很难懂呢?非也,大学教材上给我们一堆数学公式我们当然看不懂,也记不住。所以我们很多人就根本不按照范式来设计数据库。

    2022年5月23日
    39
  • 2021Vue.js面试题汇总及答案【全网最全 建议收藏】「建议收藏」

    2021Vue.js面试题汇总及答案【全网最全 建议收藏】「建议收藏」文章目录前言一、Vue.js基本问题1.1.Vue响应式原理1.2.Vue.js的特点1.3.Vue.js双向绑定的原理1.4.Vue中如何监控某个属性值的变化?1.5.Vue.js3.0放弃defineProperty,使用Proxy的原因1.6.Vue2中给data中的对象属性添加一个新的属性时会发生什么?如何解决?前言之前博主有分享过Vue学习由浅到深的文章(Vue学习之从入门到神经)现在Vue学的好的话马内真的不必后端差所以今天博主就汇总下有关Vue的相关面试题

    2022年6月12日
    47
  • process returned -1073741571_0x0000007a电脑蓝屏

    process returned -1073741571_0x0000007a电脑蓝屏前言C++运行报错:Processreturned-1073741819(0xC0000005)是真的坑!!!申请的内存没有释放new后必须deletemalloc后必须free创建内核对象(比如CreateFile,CreateMutex,CreateThread),后必须释放内核对象句柄.创建内存映射文件,CreateFileMapping,MapViewOfFile后必须…

    2022年10月4日
    2
  • a8三星手机android,三星a8手机参数和测评介绍[通俗易懂]

    a8三星手机android,三星a8手机参数和测评介绍[通俗易懂]手机已经成为我们生活中不可缺少的一部分,手机不仅可以发信息,打电话,还可以转账,开店,视频,好的手机不仅可以让你用的舒心,还不容易损坏。现在市场上,各种各样的手机比比皆是,价格也都高低不一,iPhone,索尼,华为,小米,三星都是消费者求追的对象,那么,你是否了解过GalaxyA8这一款手机呢?它的价格,性能究竟又究竟怎报价价格:1699元(价格来源网络,仅供参考)参数:GalaxyA8…

    2022年6月20日
    39

发表回复

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

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