当前位置: 首页 > news >正文

广州企业网站建设电话山西网站建设设计

广州企业网站建设电话,山西网站建设设计,用wang域名做购物网站怎么样,微信官网网站模板下载不了分页是常见大型项目都需要的一个功能,PageHelper是一个非常流行的MyBatis分页插件,它支持多数据库分页,无需修改SQL语句即可实现分页功能。 本文在最后展示了两种依赖验证的结果。 文章目录 一、第一种依赖方式二、第二种依赖方式三、创建数…

分页是常见大型项目都需要的一个功能,PageHelper是一个非常流行的MyBatis分页插件,它支持多数据库分页,无需修改SQL语句即可实现分页功能。

本文在最后展示了两种依赖验证的结果。

文章目录

    • 一、第一种依赖方式
    • 二、第二种依赖方式
    • 三、创建数据库表格
    • 四、代码示例
      • 1、TestController
      • 2、TestService
      • 3、TestServiceImpl
      • 4、TbUserMapper
      • 5、TbUserMapper.xml
    • 五、第一种依赖展示结果
    • 六、第二种依赖展示结果

一、第一种依赖方式

1、在项目中使用 PageHelper 插件需要先添加依赖:

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>4.1.3</version>
</dependency>

2、这种方式需要配置一个 config 文件

package com.wen.config;import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;/*** @author : rjw* @date : 2024-09-20*/
@Configuration
public class MyBatisConfig {@Beanpublic PageHelper pageHelper() {PageHelper pageHelper = new PageHelper();Properties properties = new Properties();properties.setProperty("dialect", "Mysql");properties.setProperty("offsetAsPageNum", "true");properties.setProperty("rowBoundsWithCount", "true");pageHelper.setProperties(properties);return pageHelper;}
}

3、setProperty 方法设置了三个分页插件的属性:

  • "dialect", "Mysql":指定了数据库方言为Mysql。(主要是因为SQL语句不同)。
  • "offsetAsPageNum", "true":这个属性通常用于指定是否将传入的 offset 参数当作 pageNum (页码)使用。在这个配置中,它被设置为true,意味着如果分页查询时传递了offset(偏移量),PageHelper会将其视为页码来处理。然而,这个设置通常不是必需的,因为PageHelper默认就是使用页码(pageNum)和每页记录数(pageSize)来进行分页的。
  • "rowBoundsWithCount", "true":这个属性用于指定是否进行 count 查询以获取总记录数。在分页查询时,知道总记录数是有用的,因为它可以让你在前端展示总页数或总记录数。设置为 true 表示 PageHelper 在执行分页查询时,会先执行一个 count 查询来获取总记录数。

二、第二种依赖方式

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

2、这种方式需要在配置文件配置一下,application.propertiesapplication.yml

pagehelper.helper-dialect=mysql   // 数据库   可选
pagehelper.reasonable=true        // 规整页码范围,应对负数或过大页码
pagehelper.support-methods-arguments=true  // 规整可以通过方法参数获取,可用可不用输入即可
pagehelper.params=count=countSql
pagehelper:helper-dialect: mysqlreasonable: truesupport-methods-arguments: trueparams: count=countSql

三、创建数据库表格

在这里插入图片描述
3、分页条件配置

pagehelper:helper-dialect: mysqlreasonable: true   // 规整页码范围support-methods-arguments: true   // 规整方法参数获取

四、代码示例

关于统一 API 响应结果封装,代码示例在 SpringBoot 项目统一 API 响应结果封装 。

关于 mybatis 的项目搭建在 SpringBoot 项目整合 MyBatis 框架 。

1、TestController

package com.wen.controller;import com.wen.data.Result;
import com.wen.data.ResultGenerator;
import com.wen.dto.TbUser;
import com.wen.service.TestService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/test")
public class TestController {@Autowiredprivate TestService testService;@GetMapping("/select")public Result<?> selectUserByPage(@Param("pageSize") Integer pageSize, @Param("pageNumber") Integer pageNumber){return ResultGenerator.genSuccessResult(testService.selectUserByPage(pageSize, pageNumber));}
}

2、TestService

package com.wen.service;import com.github.pagehelper.PageInfo;
import com.wen.dto.TbUser;public interface TestService {PageInfo<TbUser> selectUserByPage(Integer pageSize, Integer pageNumber);
}

3、TestServiceImpl

package com.wen.service.impl;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wen.dto.TbUser;
import com.wen.mapper.TbUserMapper;
import com.wen.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;@Service
public class TestServiceImpl implements TestService {@Autowiredprivate TbUserMapper tbUserMapper;@Overridepublic PageInfo<TbUser> selectUserByPage(Integer pageSize, Integer pageNumber) {// 这句代码要放在查询 mapper 语句的前面PageHelper.startPage(pageNumber, pageSize);List<TbUser> tbUsers = tbUserMapper.selectUser();PageInfo<TbUser> tbUserPageInfo = new PageInfo<>(tbUsers);return tbUserPageInfo;}
}

4、TbUserMapper

package com.wen.mapper;import com.wen.dto.TbUser;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;@Mapper
public interface TbUserMapper {List<TbUser> selectUser();
}

5、TbUserMapper.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.wen.mapper.TbUserMapper"><select id="selectUser" resultType="com.wen.dto.TbUser">SELECT username, password FROM tb_user</select>
</mapper>

五、第一种依赖展示结果

http://localhost:8080/test/select?pageSize=5&pageNumber=1
第一种依赖结果

{"code": 1,"message": "SUCCESS","data": {"pageNum": 1,"pageSize": 5,"size": 5,"orderBy": null,"startRow": 1,"endRow": 5,"total": 7,"pages": 2,"list": [{"id": 0,"username": "laowang","password": "112233"},{"id": 0,"username": "laoli","password": "123456"},{"id": 0,"username": "lisi","password": "3344"},{"id": 0,"username": "wangwu","password": "6677"},{"id": 0,"username": "周周","password": "111"}],"firstPage": 1,"prePage": 0,"nextPage": 2,"lastPage": 2,"isFirstPage": true,"isLastPage": false,"hasPreviousPage": false,"hasNextPage": true,"navigatePages": 8,"navigatepageNums": [1,2]}
}

六、第二种依赖展示结果

http://localhost:8080/test/select?pageSize=5&pageNumber=1
第二种依赖展示结果

{"code": 1,"message": "SUCCESS","data": {"total": 7,"list": [{"id": 0,"username": "laowang","password": "112233"},{"id": 0,"username": "laoli","password": "123456"},{"id": 0,"username": "lisi","password": "3344"},{"id": 0,"username": "wangwu","password": "6677"},{"id": 0,"username": "周周","password": "111"}],"pageNum": 1,"pageSize": 5,"size": 5,"startRow": 1,"endRow": 5,"pages": 2,"prePage": 0,"nextPage": 2,"isFirstPage": true,"isLastPage": false,"hasPreviousPage": false,"hasNextPage": true,"navigatePages": 8,"navigatepageNums": [1,2],"navigateFirstPage": 1,"navigateLastPage": 2}
}
http://www.yayakq.cn/news/980674/

相关文章:

  • 哈尔滨松北区建设局网站阿里云新增网站
  • 免费网站正能量小说网站建设需要考虑哪些因素
  • 大型门户网站建设哪家好企业网站推广的收获与启示
  • 门户网站建设参考文献网站建设维护工作经验
  • 阜宁网站建设专业做国际网站
  • 电子科技技术支持东莞网站建设自己本地可以做网站服务器吗
  • 徐汇网站制作成都专业vi设计公司
  • 网站关键词优化怎么做的南宁西乡塘区网站建设
  • 面试网站开发员注册个人工作室流程及费用
  • pc端兼手机端网站模板网站建设 手机
  • 太原微信网站开发搜索引擎优化的主要工作
  • 校园网站建设考评办法上海房产网站建设
  • 为什么辽宁省城乡建设厅网站打不开那有名网站是php做的
  • 厦门建设执业资格注册管理中心网站安庆做网站企业
  • 中国做外贸的网站网页设计app软件
  • 扁平配色网站网上推广方式
  • 中国最好的网站建设自己制作软件平台
  • 免费的免抠图素材网站哪个网站可以做视频播放器
  • 网站定位 怎么做想网上卖家具怎么做网站
  • wordpress 多个子站点企业站用wordpress做好吗
  • 哈尔滨网站设计培训班项目网站的建设有两种模式
  • 做网站切图儿童故事网站建设
  • 大连做网站的公司有哪些网络设计的三个层次
  • 网站建设管理与维护功能意义赵县网站建设公司
  • 网站建设 智能建站做百度移动端网站优
  • discuz 网站风格wordpress 用户功能
  • 安丘网站建设多少钱网站建设 国鸿
  • 微信里的网站怎么做e龙岩官网下载
  • 南宁网站建设加王道下拉化妆培训网站 源码
  • 北京建设项目管理有限公司网站上海泵阀网站建设