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

高端网站建设过程青白江建设网站

高端网站建设过程,青白江建设网站,如何广告推广,网站支付接口怎么做在Spring Boot项目中&#xff0c;利用PageHelper插件可以轻松实现数据分页功能。以下是具体的实现步骤和代码示例。添加依赖在项目的pom.xml文件中添加PageHelper和MyBatis的依赖。<dependency><groupId>com.github.pagehelper</groupId><artifactId>p…

在Spring Boot项目中,利用PageHelper插件可以轻松实现数据分页功能。以下是具体的实现步骤和代码示例。

添加依赖

在项目的pom.xml文件中添加PageHelper和MyBatis的依赖。

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version>
</dependency>
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>

配置PageHelper

application.propertiesapplication.yml中配置PageHelper的参数。

# PageHelper配置
pagehelper:helper-dialect: mysqlreasonable: truesupport-methods-arguments: trueparams: count=countSql

创建实体类

假设我们有一个图书系统数据,定义图书实体类,对应数据库中的图书表。

package com.itheima.sprintbootmybatis.pojo;/*** Book 实体类*/
public class Book {// 图书ID,使用Long类型private Long id;// 图书名称,使用String类型private String name;// 图书作者,使用String类型private String author;// 图书价格,使用Double类型private Double price;// Getters 和 Setters 方法public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}// 重写toString方法,方便打印对象信息@Overridepublic String toString() {return "Book{" +"id=" + id +", name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +'}';}
}

创建Mapper接口

创建一个MyBatis的Mapper接口,用于查询图书数据。

package com.itheima.sprintbootmybatis.mapper;
import com.itheima.sprintbootmybatis.pojo.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface BookMapper {
//查询所有图书@Select("select * FROM books")List<Book> getAllBooks();@Select("SELECT COUNT(*) FROM books")long getTotalBooks(); // 获取总记录数}

创建Service层

创建UserServiceImpl和UserService;

在Service层中调用PageHelper进行分页查询。

package com.itheima.sprintbootmybatis.service.impl;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.itheima.sprintbootmybatis.mapper.BookMapper;
import com.itheima.sprintbootmybatis.pojo.Book;
import com.itheima.sprintbootmybatis.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class BookServiceImpl implements BookService {@Autowiredprivate BookMapper bookMapper;@Overridepublic List<Book> getAllBooks(int page, int size) {//确保页码和每页大小合理if (page <= 0) page = 1;if (size <= 0) size = 10;// 使用PageHelper进行分页PageHelper.startPage(page, size);return bookMapper.getAllBooks();}@Overridepublic long getTotalBooks() {return bookMapper.getTotalBooks(); // 调用Mapper方法获取总记录数}
}
package com.itheima.sprintbootmybatis.service;
import com.itheima.sprintbootmybatis.pojo.Book;import java.util.List;public interface BookService {List<Book> getAllBooks(int page,int size);long getTotalBooks();
}

创建统一的BookApiResponse 

设计一个通用的响应类有助于保持API的一致性,便于前端处理和错误管理。以下是一个常见的实现方式。

package com.itheima.sprintbootmybatis.common;
import java.util.List;
public class BookApiResponse<T> {private int code;      // 状态码private List<T> data;  // 数据列表private int page;      // 当前页码private int size;      // 每页大小private long total;    // 总记录数// 成功时的构造函数public BookApiResponse(List<T> data, int page, int size, long total) {this.code = 200; // 默认成功状态码this.data = data;this.page = page;this.size = size;this.total = total;}// 错误时的构造函数public BookApiResponse(int code, String message) {this.code = code;this.data = null;this.page = 0;this.size = 0;this.total = 0;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public List<T> getData() {return data;}public void setData(List<T> data) {this.data = data;}public int getPage() {return page;}public void setPage(int page) {this.page = page;}public int getSize() {return size;}public void setSize(int size) {this.size = size;}public long getTotal() {return total;}public void setTotal(long total) {this.total = total;}
}

创建Controller层

在Controller中接收分页参数并返回分页结果。

package com.itheima.sprintbootmybatis.controller;import com.itheima.sprintbootmybatis.pojo.Book;
import com.itheima.sprintbootmybatis.service.BookService;
import com.itheima.sprintbootmybatis.common.BookApiResponse;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping("/books")
public class BookController {@Autowiredprivate BookService bookService;@GetMappingpublic BookApiResponse<Book> getAllBooks(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "10") int size) {try {List<Book> books = bookService.getAllBooks(page, size);long total = bookService.getTotalBooks(); // 获取总记录数return new BookApiResponse<>(books, page, size, total);} catch (Exception e) {e.printStackTrace();return new BookApiResponse<>(500, "Internal Server Error");}}
}

测试分页功能

启动项目后,访问/books接口,传入pageNumpageSize参数即可获取分页数据。例如:

GET http://localhost:8080/books?page=1&size=10

响应结果将包含分页信息,如当前页、每页数量、总页数等。

分页参数说明

  • page:当前页码,默认值为1。
  • size:每页显示的数据条数,默认值为10。
  • total:总数据量。
  • data:当前页的数据列表。

通过以上步骤,可以轻松实现Spring Boot项目中图书数据的分页功能。PageHelper插件简化了分页逻辑的开发,提高了代码的可维护性。


文章转载自:

http://LjXLNPdm.Ljcjc.cn
http://y8JSSUjM.Ljcjc.cn
http://Nd3k2B85.Ljcjc.cn
http://huUjMJfv.Ljcjc.cn
http://iPff69nH.Ljcjc.cn
http://MrGZMsKg.Ljcjc.cn
http://DaIRx85c.Ljcjc.cn
http://2kmczvsh.Ljcjc.cn
http://FjeK3zd5.Ljcjc.cn
http://CZUR0Qb9.Ljcjc.cn
http://5RFHR1e7.Ljcjc.cn
http://dc8ytDMH.Ljcjc.cn
http://F6IJQR27.Ljcjc.cn
http://dHjBKuR2.Ljcjc.cn
http://NQGbydVU.Ljcjc.cn
http://qyM9B64C.Ljcjc.cn
http://tly4DZbv.Ljcjc.cn
http://0xsTZVun.Ljcjc.cn
http://j9heSNnW.Ljcjc.cn
http://U05Auyqp.Ljcjc.cn
http://4b62IQZm.Ljcjc.cn
http://yjX4rmvv.Ljcjc.cn
http://a9l99BwD.Ljcjc.cn
http://kTLSu27S.Ljcjc.cn
http://16urnLdw.Ljcjc.cn
http://4i7HcM1h.Ljcjc.cn
http://GVhSvQNY.Ljcjc.cn
http://pvVS5ECo.Ljcjc.cn
http://G5SZ0OCo.Ljcjc.cn
http://vBJqJ4nC.Ljcjc.cn
http://www.dtcms.com/wzjs/692230.html

相关文章:

  • 怎么做盗版视频网站吗分析网站建设发展措施
  • 做设计兼职的网站tp钱包下载
  • 建设网站南昌直播app开发教程
  • 怎么写网站建设的说明书中文域名和网站的关系
  • 阿里巴巴个人网站怎么做秦皇岛黄页大全秦皇岛本地信息网
  • 商城系统网站模板免费下载南昌网站建设公司好么
  • 专做外贸的网站有哪些资料手机网站存储登录信息
  • 如何造网站百度百家号官网登录
  • 网站后台密码忘了沈阳男科正规医院
  • 网站域名费会计分录怎么做网络推广工作好不好干
  • 法律顾问 网站 源码广州成亿网络
  • 做添加剂的外贸网站有哪些怎么创建一个视频网站
  • 运城做网站公司生物做实验的网站
  • 优惠券网站要怎么做西安seo服务公司
  • 做百度推广一定要有网站吗手机网站菜单设计模板
  • 百度 网站移动适配手机网站设计尺寸毫米
  • 网站建设服务市场网站 用户体验
  • 荆门建网站费用广告图片素材
  • 网站备案账号是什么样的网页设计与制作实训报告个人主页
  • 企业网站建设 电脑配置河南省建设厅网站地址
  • 免费快速建站网站vultr wordpress
  • 网站权重什么意思武隆网站建设报价
  • 柯桥建设局网站首页网络培训的收获与感受
  • 沈阳网站推广公司怎么建立公司网站?
  • 辽阳企业网站建设费用做刷赞网站能赚钱吗
  • 网站建设规划设计长春做企业网站多少钱
  • vs2013可以做网站么Git page wordpress
  • 网站建设怎么找客源那些公司做网站好
  • 网站建设与管理维护 李建青惠州的企业网站建设
  • 国外室内设计网站推荐上海公司做网站的