Spring Boot集成Mybatis Plus通过Pagehelper实现分页查询

文章目录

  • 0 简要说明Pagehelper
  • 1 搭建环境
    • 1.1 项目目录
    • 1.2 项目搭建需要的依赖
    • 1.3 配置分页插件拦截器
    • 1.4 源代码
      • 启动类
      • 实体类
      • 数据层
      • xml映射文件
      • 业务层
      • 业务层实现类
      • 控制层
      • 接口配置swagger
      • 请求体
  • 2 可能出现的疑问或者问题
    • 2.1 关于total属性疑问
    • 2.2 分页不生效问题
  • 3 案例说明
    • 3.1 配置信息
    • 3.2 请求体
    • 3.3 控制层
    • 3.5 业务层
    • 4.6 业务层实现类
  • 4 关键问题:查询和录入操作使用一个dto出现强制分页情况【待定,问题未能复现,请稍等】

解决 PageInfo 返回的 total 不正确
关于PageInfo的total属性得到的值等于当前页记录数
Pagehelper官网
Pagehelper使用入门

0 简要说明Pagehelper

在这里插入图片描述

1 搭建环境

1.1 项目目录

在这里插入图片描述

1.2 项目搭建需要的依赖

		 <!-- SpringBoot的依赖配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.5.10</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        <!--Mybatis Plus 核心依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--MySQL驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
        <!--Mybatis Plus 扩展依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--pagehelper分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.0</version>
        </dependency>

1.3 配置分页插件拦截器

在properties或者yml配置拦截器信息,使其生效。
Spring Boot 引入 starter 后自动生效,对分页插件进行配置时,在 Spring Boot 对应的配置文件 application.[properties|yaml] 中配置

# DataSource Config
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true&serverTimezone=UTC&useSSL=false&allowMultiQueries=true
    driver-class-name: com.mysql.cj.jdbc.Driver
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER

#配置日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath:mapper/*.xml

server:
  port: 8089

pagehelper:
  reasonable: true
  support-methods-arguments: true
  params: countSql
  helperDialect: mysql

reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。

supportMethodsArguments:支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。 使用方法可以参考测试代码中的 com.github.pagehelper.test.basic 包下的 ArgumentsMapTestArgumentsObjTest

helperDialect:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。

params:为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值, 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero

更加详细的参数说明,可以参考官网说明

1.4 源代码

启动类

package com.geekmice.sbpagehelper;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @BelongsProject: spring-boot-scaffold
 * @BelongsPackage: PACKAGE_NAME
 * @Author: pingmingbo
 * @CreateTime: 2023-08-05  15:14
 * @Description: TODO
 * @Version: 1.0
 */
@MapperScan(value = "com.geekmice.sbpagehelper.dao")
@SpringBootApplication
public class SbPageHelperApplication {
    public static void main(String[] args) {
        SpringApplication.run(SbPageHelperApplication.class, args);
    }
}

实体类

package com.geekmice.sbpagehelper.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;

/**
 * (Teacher)实体类
 *
 * @author pingmingbo
 * @since 2023-08-05 15:19:26
 */
@TableName("teacher")
@Data
public class Teacher implements Serializable {
    private static final long serialVersionUID = -82982716139385175L;
    /**
     * 教师号
     */
    @TableId
    @TableField(value = "teacher_no")
    private String teacherNo;

    /**
     * 教师名称
     */
    @TableField(value = "teacher_name")
    private String teacherName;

    /**
     * 部门编号
     */
    @TableField(value = "category_id")
    private Integer categoryId;


}

数据层

package com.geekmice.sbpagehelper.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.geekmice.sbpagehelper.domain.Teacher;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * (Teacher)表数据库访问层
 *
 * @author pingmingbo
 * @since 2023-08-05 15:19:26
 */
public interface TeacherDao extends BaseMapper<Teacher> {


}

xml映射文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.geekmice.sbpagehelper.dao.TeacherDao">
    
        <resultMap type="com.geekmice.sbpagehelper.domain.Teacher" id="TeacherMap">
            <result property="teacherNo" column="teacher_no" jdbcType="VARCHAR"/>
            <result property="teacherName" column="teacher_name" jdbcType="VARCHAR"/>
            <result property="categoryId" column="category_id" jdbcType="INTEGER"/>
        </resultMap>
    

    
    </mapper>

业务层

package com.geekmice.sbpagehelper.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.geekmice.sbpagehelper.domain.Teacher;
import com.geekmice.sbpagehelper.dto.QueryDTO;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * (Teacher)表服务接口
 *
 * @author pingmingbo
 * @since 2023-08-05 15:19:26
 */
public interface TeacherService extends IService<Teacher> {


    /**
     * @return 响应信息
     * @description 初次使用分页查询
     */
    List<Teacher> queryPage();

    /**
     * @param pageSize 当前页数
     * @param pageNum  每页条数
     * @return 返回信息
     * @description 分页参数查询
     */
    PageInfo<Teacher> queryPage(int pageNum, int pageSize);

    /**
     * @param queryDTO 请求体
     * @return 响应信息
     * @description 多参数分页查询
     */
    PageInfo<Teacher> queryPage(QueryDTO queryDTO);
}

业务层实现类

在这里插入图片描述

package com.geekmice.sbpagehelper.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.geekmice.sbpagehelper.dao.TeacherDao;
import com.geekmice.sbpagehelper.domain.Teacher;
import com.geekmice.sbpagehelper.dto.QueryDTO;
import com.geekmice.sbpagehelper.service.TeacherService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * (Teacher)表服务实现类
 *
 * @author pingmingbo
 * @since 2023-08-05 15:19:26
 */
@Service("teacherService")
@Slf4j
public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> implements TeacherService {
    @Resource
    private TeacherDao teacherDao;

    /**
     * @return 响应信息
     * @description 初次使用分页查询
     */
    @Override
    public List<Teacher> queryPage() {
        PageHelper.startPage(1, 10);
        List<Teacher> result = teacherDao.selectList(null);
        return result;
    }

    /**
     * @param pageSize 当前页数
     * @param pageNum  每页条数
     * @return 返回信息
     * @description 分页参数查询
     */
    @Override
    public PageInfo<Teacher> queryPage(int pageNum, int pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        QueryWrapper<Teacher> teacherQueryWrapper = new QueryWrapper<>();
        teacherQueryWrapper.likeRight("teacher_name", "小");
        List<Teacher> teachers = teacherDao.selectList(teacherQueryWrapper);
        PageInfo<Teacher> teacherPageInfo = new PageInfo<>(teachers);
        return teacherPageInfo;
    }

    /**
     * @param queryDTO 请求体
     * @return 响应信息
     * @description 多参数分页查询
     */
    @Override
    public PageInfo<Teacher> queryPage(QueryDTO queryDTO) {
        int pageNum = queryDTO.getPageNum();
        int pageSize = queryDTO.getPageSize();
        PageHelper.startPage(pageNum,pageSize);
        QueryWrapper<Teacher> teacherQueryWrapper = new QueryWrapper<>();
        teacherQueryWrapper.eq("teacher_name", queryDTO.getTeacherName());
        List<Teacher> teacherList = teacherDao.selectList(teacherQueryWrapper);
        PageInfo<Teacher> result = new PageInfo<>(teacherList);
        return result;
    }
}

控制层

在这里插入图片描述

package com.geekmice.sbpagehelper.controller;

import com.geekmice.common.utils.AjaxResult;
import com.geekmice.sbpagehelper.domain.Teacher;
import com.geekmice.sbpagehelper.dto.QueryDTO;
import com.geekmice.sbpagehelper.service.TeacherService;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * (Teacher)表控制层
 *
 * @author pingmingbo
 * @since 2023-08-05 15:19:26
 */
@RestController
@RequestMapping("teacher")
@Api(tags = "0.分页查询模块")
public class TeacherController {
    /**
     * 服务对象
     */
    @Resource
    private TeacherService teacherService;

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @ApiOperation(value = "查询单条数据")
    @GetMapping("selectOne")
    public Teacher selectOne(String id) {
        return null;
    }

    /**
     * @return 响应信息
     * @description 初次使用分页查询
     */
    @GetMapping(value = "queryPage")
    @ApiOperation(value = "分页查询")
    public List<Teacher> queryPage() {
        List<Teacher> result = teacherService.queryPage();
        return result;
    }

    /**
     * @param pageSize 当前页数
     * @param pageNum  每页条数
     * @return 返回信息
     * @description 分页参数查询
     */
    @GetMapping(value = "queryPageHavingParams")
    @ApiOperation(value = "分页查询带有参数")
    public AjaxResult queryPageHavingParams(int pageSize, int pageNum) {
        PageInfo<Teacher> result = teacherService.queryPage(pageNum, pageSize);
        return AjaxResult.success(result);
    }

    /**
     * @param queryDTO 请求体
     * @return 响应信息
     * @description 多参数分页查询
     */
    @GetMapping(value = "queryPageByDTO")
    @ApiOperation(value = "多参数分页查询")
    public AjaxResult queryPageByDTO(QueryDTO queryDTO) {
        PageInfo<Teacher> result = teacherService.queryPage(queryDTO);
        return AjaxResult.success(result);
    }

}

接口配置swagger

package com.geekmice.sbpagehelper.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
 * @BelongsProject: spring-boot-scaffold
 * @BelongsPackage: com.geekmice.sbhelloworld.com.geekmice.sbpagehelper.config
 * @Author: pingmingbo
 * @CreateTime: 2023-07-30  15:45
 * @Description: TODO
 * @Version: 1.0
 */
@Configuration
public class Knife4jConfig {
    @Bean(value = "defaultApi2")
    public Docket customDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.geekmice.sbpagehelper.controller"))
                .build();
    }

    /**
     * 构建 api文档的详细信息函数
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("现货交易")
                .version("1.0.0")
                .description("现货交易详情")
                .contact(new Contact("geekmice","http://geekmice.cn","2437690868@qq.com"))
                .build();
    }
}

请求体

package com.geekmice.sbpagehelper.dto;

import com.github.pagehelper.PageInfo;
import lombok.Data;

/**
 * @BelongsProject: spring-boot-scaffold
 * @BelongsPackage: com.geekmice.sbpagehelper.dto
 * @Author: pingmingbo
 * @CreateTime: 2023-08-05  16:00
 * @Description: TODO
 * @Version: 1.0
 */
@Data
public class QueryDTO extends PageInfo {
    private String teacherName;
}

2 可能出现的疑问或者问题

2.1 关于total属性疑问

2.2 分页不生效问题

  1. 当我们调用pagehelper.startPage()方法后下一条语句必须是你要调用的查询语句;
  2. 我们的PageInfo传入的结果集,必须是我们调用查询语句返回的结果集;

提前说明:入参是 pageNum:1 pageSize:2 userName:张 模糊查询
正常情况,没有分页是有以张开头有三条数据,有分页的情况下 张1,张2

第一种问题复现如下:
List userDomainList = userDao.selectList(userDomainQueryWrapper); // 位置1
PageHelper.startPage(pageNum, pageSize); // 位置2

        int pageNum = userVO.getPageNum();
        int pageSize = userVO.getPageSize();
        String userName = userVO.getUserName();
        QueryWrapper<UserDomain> userDomainQueryWrapper = new QueryWrapper<>();
        userDomainQueryWrapper.likeRight("user_name", userName);
        List<UserDomain> userDomainList = userDao.selectList(userDomainQueryWrapper); // 位置1
        PageInfo<UserDomain> userDomainPageInfo = new PageInfo<>(userDomainList);
        PageHelper.startPage(pageNum, pageSize); // 位置2
        return userDomainPageInfo;

返回结果有疑问:返回的是没有分页,只要是张开头的数据都返回了。

{
  "msg": "操作成功",
  "code": 200,
  "data": {
    "total": 3,
    "list": [
      {
        "id": 1,
        "userName": "张1",
        "birthday": "2023-08-09T16:00:00.000+00:00",
        "sex": "男",
        "address": "123@163.com"
      },
      {
        "id": 3,
        "userName": "张2",
        "birthday": "2023-08-09T16:00:00.000+00:00",
        "sex": "女",
        "address": "999@163.com"
      },
      {
        "id": 4,
        "userName": "张3",
        "birthday": "2023-08-09T16:00:00.000+00:00",
        "sex": "男",
        "address": "9994@qq.com"
      }
    ],
    "pageNum": 1,
    "pageSize": 4,
    "size": 3,
    "startRow": 1,
    "endRow": 3,
    "pages": 1,
    "prePage": 0,
    "nextPage": 0,
    "isFirstPage": true,
    "isLastPage": true,
    "hasPreviousPage": false,
    "hasNextPage": false,
    "navigatePages": 8,
    "navigatepageNums": [
      1
    ],
    "navigateFirstPage": 1,
    "navigateLastPage": 1
  }
}

3 案例说明

3.1 配置信息

添加依赖

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.0</version>
        </dependency>

yml配置信息

pagehelper:
  reasonable: true
  support-methods-arguments: true
  params: countSql
  helperDialect: mysql

3.2 请求体

PageInfo这个api是Pagehelper原生的对象,涵盖基本分页信息
在这里插入图片描述
在这里插入图片描述

package com.geekmice.sbpagehelper.dto;

import com.github.pagehelper.PageInfo;
import lombok.Data;

/**
 * @BelongsProject: spring-boot-scaffold
 * @BelongsPackage: com.geekmice.sbpagehelper.dto
 * @Author: pingmingbo
 * @CreateTime: 2023-08-05  16:00
 * @Description: TODO
 * @Version: 1.0
 */
@Data
public class QueryDTO extends PageInfo {
    private String teacherName;
}

3.3 控制层

/**
 * (Teacher)表控制层
 *
 * @author pingmingbo
 * @since 2023-08-05 15:19:26
 */
@RestController
@RequestMapping("teacher")
@Api(tags = "0.分页查询模块")
public class TeacherController {
    /**
     * 服务对象
     */
    @Resource
    private TeacherService teacherService;

    /**
     * @param queryDTO 请求体
     * @return 响应信息
     * @description 多参数分页查询
     */
    @GetMapping(value = "queryPageByDTO")
    @ApiOperation(value = "多参数分页查询")
    public AjaxResult queryPageByDTO(QueryDTO queryDTO) {
        PageInfo<Teacher> result = teacherService.queryPage(queryDTO);
        return AjaxResult.success(result);
    }
}

3.5 业务层

package com.geekmice.sbpagehelper.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.geekmice.sbpagehelper.domain.Teacher;
import com.geekmice.sbpagehelper.dto.QueryDTO;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * (Teacher)表服务接口
 *
 * @author pingmingbo
 * @since 2023-08-05 15:19:26
 */
public interface TeacherService extends IService<Teacher> {

    /**
     * @param queryDTO 请求体
     * @return 响应信息
     * @description 多参数分页查询
     */
    PageInfo<Teacher> queryPage(QueryDTO queryDTO);
}

4.6 业务层实现类

package com.geekmice.sbpagehelper.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.geekmice.sbpagehelper.dao.TeacherDao;
import com.geekmice.sbpagehelper.domain.Teacher;
import com.geekmice.sbpagehelper.dto.QueryDTO;
import com.geekmice.sbpagehelper.service.TeacherService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;

/**
 * (Teacher)表服务实现类
 *
 * @author pingmingbo
 * @since 2023-08-05 15:19:26
 */
@Service("teacherService")
@Slf4j
public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> implements TeacherService {
    @Resource
    private TeacherDao teacherDao;

    /**
     * @param queryDTO 请求体
     * @return 响应信息
     * @description 多参数分页查询
     */
    @Override
    public PageInfo<Teacher> queryPage(QueryDTO queryDTO) {
        int pageNum = queryDTO.getPageNum();
        int pageSize = queryDTO.getPageSize();
        QueryWrapper<Teacher> teacherQueryWrapper = new QueryWrapper<>();
        teacherQueryWrapper.eq("teacher_name", queryDTO.getTeacherName());
        PageHelper.startPage(pageNum,pageSize);
        List<Teacher> teacherList = teacherDao.selectList(teacherQueryWrapper);
        PageInfo<Teacher> result = new PageInfo<>(teacherList );
        return result;
    }
}

再次说明 PageHelper.startPage(pageNum,pageSize);使用顺序

4 关键问题:查询和录入操作使用一个dto出现强制分页情况【待定,问题未能复现,请稍等】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/72065.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库技术--数据库引擎,数据访问接口及其关系详解(附加形象的比喻)

目录 背景数据库引擎Jet数据库&#xff1a;ISAM&#xff1a;ODBC&#xff08;Open Database Connectivity&#xff09;&#xff1a; 数据访问接口ADO&#xff08;ActiveX Data Objects&#xff09;DAO&#xff08;Data Access Objects&#xff09;RDO&#xff08;Remote Data O…

【C语言】操作符详解

目录 一、算数操作符 二、移位操作符 1.左移操作符 2.右移操作符 (1) 逻辑右移 (2) 算术右移 (3)小总结 三、位操作符 四、赋值操作符 五、单目操作符 六、关系操作符 七、逻辑操作符 八、 条件操作符 九、逗号表达式 十、下标引用、函数调用和结构成员 1. [ ]下…

第一百二十八天学习记录:数据结构与算法基础:栈和队列(上)(王卓教学视频)

栈和队列的定义和特点 1、栈和队列是两种常用的、重要的数据结构 2、栈和队列是限定插入和删除只能在表的“端点”进行的线性表 线性表可以在任意一个位置插入和删除&#xff0c;栈只能在最后位置插入和删除 队列 只能删除第一个元素 栈和队列是线性表的子集&#xf…

LeetCode面向运气之Javascript—第27题-移除元素-98.93%

LeetCode第27题-移除元素 题目要求 一个数组nums和一个值val&#xff0c;你需要原地移除所有数值等于val的元素&#xff0c;并返回移除后数组的新长度 举例 输入&#xff1a;nums [3,2,2,3], val 3 输出&#xff1a;2, nums [2,2] 输入&#xff1a;nums [0,1,2,2,3,0,4,2…

Mac思维导图软件Xmind for Mac中文激活版

好的思维导图软件能帮助用户更好的发挥创作能力&#xff0c;XMind是一款流行的思维导图软件&#xff0c;可以帮助用户创建各种类型的思维导图和概念图。 多样化的导图类型&#xff1a;XMind提供了多种类型的导图&#xff0c;如鱼骨图、树形图、机构图等&#xff0c;可以满足不同…

Unity ML-Agent

介绍: 环境搭建 待为完序

温室花卉种植系统springboot框架jsp鲜花养殖智能管理java源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于Git无线传感网络的温室花卉种植智能控制系统 系统…

【linux-keepalive】keepalive避免单点故障,高可用配置

keepalive: [rootproxy ~]# yum install -y keepalived [rootproxy ~]# vim /etc/keepalived/keepalived.conf global_defs {router_id proxy1 //设置路由ID号vrrp_iptables //不添加任何防火墙规则 } vrrp_instance V…

C++_模板初阶

在面向对象中&#xff0c;我们可以使用重载来实现多态。 但是问题在于&#xff0c;重载的函数仅仅是类型不同&#xff0c;代码复用率比较低&#xff0c;只要有新的类型出现时&#xff0c;就要增加对应的函数&#xff1b;另一方面它的代码可维护性比较低&#xff0c;一个出错可…

Android之消除APP图标的白色边框

有问题的效果&#xff1a; 解决方案&#xff1a; 第一步&#xff1a;app右键—>new—>Image Asset 第二步&#xff1a;上传Logo图标&#xff0c;选择每种分辨率&#xff0c;预览看效果&#xff0c;选择Resize&#xff0c;可以微调 第三步&#xff1a;点击 Next&#xff…

nbcio-boot升级到3.1后出现online表单新增报错

nbcio-boot升级springboot、mybatis-plus和JSQLParser后出现新增online表单的时候报错&#xff0c;如下&#xff1a; 2023-08-13 21:18:01.292 [http-nio-8080-exec-12] [1;31mERROR[0;39m [36mo.jeecg.common.exception.JeecgBootExceptionHandler:69[0;39m - Handler dispat…

【Bert101】最先进的 NLP 模型解释【01/4】

0 什么是伯特&#xff1f; BERT是来自【Bidirectional Encoder Representations from Transformers】变压器的双向编码器表示的缩写&#xff0c;是用于自然语言处理的机器学习&#xff08;ML&#xff09;模型。它由Google AI Language的研究人员于2018年开发&#xff0c;可作为…

免费实用的日记应用:Day One for Mac中文版

Day One for Mac是一款运行在Mac平台上的日记软件&#xff0c;你可以使用Day One for mac通过快速菜单栏条目、提醒系统和鼓舞人心的信息来编写更多内容&#xff0c;day one mac版还支持Dropbox同步功能&#xff0c;想要day one mac中文免费版的朋友赶紧来试试吧&#xff01; …

力扣刷题(C++)知识点

一&#xff0c;找到数组的中间位置 这个是错的&#xff0c;不能分开来 C vector<int>& nums 用法 创建一维数组vector&#xff1a; vector<int> nums; //不指定长度vector<int> nums(n); //指定长度为n c &#xff1c;numeric&#xff1e; accumul…

C语言——指针进阶

本章重点 字符指针数组指针指针数组数组传参和指针传参函数指针函数指针数组指向函数指针数组的指针回调函数指针和数组面试题的解析 1. 字符指针 在指针的类型中我们知道有一种指针类型为字符指针 char* int main() { char ch w; char *pc &ch; *pc w; return 0; }…

Java+Excel+POI+testNG基于数据驱动做一个简单的接口测试【杭州多测师_王sir】

一、创建一个apicases.xlsx放入到eclipse的resource里面&#xff0c;然后refresh刷新一下 二、在pom.xml文件中加入poi和testng的mvn repository、然后在eclipse的对应目录下放入features和plugins&#xff0c;重启eclipse就可以看到testNG了 <!--poi excel解析 --><d…

IDEA项目实践——Spring当中的切面AOP

系列文章目录 IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍 IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介 IDEWA项目实践——mybatis的一些基本原理以及案例 IDEA项目实践——动态SQL、关系映射、注解开发 IDEA项…

Django实现音乐网站 ⑽

使用Python Django框架制作一个音乐网站&#xff0c; 本篇主要是后台对歌曲类型、歌单功能原有功能进行部分功能实现和显示优化。 目录 歌曲类型功能优化 新增编辑 优化输入项标题显示 父类型显示改为下拉菜单 列表显示 父类型显示名称 过滤器增加父类型 歌单表功能优化…

从一到无穷大 #10 讨论 Apache IoTDB 大综述中看到的优劣势

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言问题定义新技术数据模型schemalessTsfile设计双MemTable高级可扩展查询其他 IotD…

【VSCode】报错:出现段错误解决办法 (Segmentation fault)

VScode报错&#xff1a;Segmentation fault (core dumped)的解决办法 解决Program received signal SIGSEGV, Segmentation fault.的辛酸 Linux环境下段错误的产生原因及调试方法小结 Linux下的段错误Segmentationfault产生的原因及调试方法经典.pdf 在程序中&#xff0c;TF…