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


相关推荐

  • Java8 stream 之groupingBy() 分组排序

    Java8 stream 之groupingBy() 分组排序ListmatchsList=newArrayList();Map>MatchsListMap=matchsList.stream().collect(Collectors.groupingBy(Matchs::getMatchDate));此时MatchsListMap的排序规则是根据MatchDate降序的(默认),也就是说ma

    2022年8月20日
    50
  • django修改数据_模型

    django修改数据_模型前言在ORM框架中,所有模型相关的操作,比如添加/删除等。其实都是映射到数据库中一条数据的操作。因此模型操作也就是数据库表中数据的操作。添加一个模型到数据库中:添加模型到数据库中。首先需要创建一

    2022年7月30日
    10
  • Vue devServer.proxy代理配置详解

    Vue devServer.proxy代理配置详解constproxy require http proxy middleware module exports devServer host localhost targethost port 8080 proxy api 代理器中设置 api 项目中请求路径为 api 的替换为 target proxy api target http

    2025年8月30日
    0
  • vim学习笔记

    vim学习笔记

    2022年2月6日
    53
  • acwing-9. 分组背包问题(分组背包)

    acwing-9. 分组背包问题(分组背包)有 N 组物品和一个容量是 V 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vij,价值是 wij,其中 i 是组号,j 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数 N,V,用空格隔开,分别表示物品组数和背包容量。接下来有 N 组数据:每组数据第一行有一个整数 Si,表示第 i 个物品组的物品数量;每组数据接下来有 Si 行,每行有两个整数 vij,wij,用空格隔开,分别表示第 i

    2022年8月9日
    5
  • mysql-mmm高可用架构

    mysql-mmm高可用架构

    2021年8月24日
    60

发表回复

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

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