Spring-Boot MyBatis Pagehelper分页查询
1.创建数据可表
2.加入maven 依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mysql-connector-java 数据库驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<!-- mybatis-pluss-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--pagehelper分页-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
3.配置文件application.propertis
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.html
##关闭thymeleaf的缓存,不然在开发过程中修改页面不会立刻生效需要重启,生产可配置为true
#spring.thymeleaf.cache=false
#前端控制器访问静态资源放行
spring.web.resources.static-locations=classpath:/static/
#spring默认有数据源
spring.datasource.username=root
spring.datasource.password=19990507
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/flower?serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
#MyBatis的配置
#扫包取别名
mybatis-plus.type-aliases-package=com.xmx.flowerspringboot.pojo
#xml文件配置
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.config-locations=classpath:config/*.xml
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# actuator配置
management.security.enabled=false
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
############# 分页插件PageHelper配置 #############
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.pageSizeZero=true
pagehelper.params=count=countSql
#f防止因循环引用导致启动时报错的问题
spring.main.allow-circular-references=true
4.代码区域
4.1–pojo
package com.xmx.flowerspringboot.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @create: 2022-03-01 17:45
* @author: 郑兴源
* @description:
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Flower {
private Integer id;
private String name;
private String anothername;
private String property;
private Double price;
private String production;
}
4.2–dao
package com.xmx.flowerspringboot.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xmx.flowerspringboot.pojo.Flower;
import java.util.List;
import java.util.Map;
/**
* @create: 2022-03-01 17:44
* @author: 郑兴源
* @description:
**/
public interface FlowerDao extends BaseMapper<Flower> {
//分頁查询
List<Flower> getFlowesPage(Map map);
}
Mapper.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.xmx.flowerspringboot.dao.FlowerDao">
<select id="getFlowesPage" parameterType="map" resultType="Flower">
select * from flower
<if test="search!=null">
where name like concat('%',#{search},'%')
</if>
</select>
</mapper>
4.3serviceImpl
@Override
public PageInfo<Flower> findPage(Integer pageIndex, Integer pageSize, String search) {
// 启动分页
PageHelper.startPage(pageIndex, pageSize);
QueryWrapper<Flower> queryWrapper = new QueryWrapper<>();
//模糊查询的条件
queryWrapper.like(search != null, "name", search);
//执行查询
List<Flower> list = flowerDao.selectList(queryWrapper);
PageInfo<Flower> pageInfo = new PageInfo<>(list);
//打印输出
System.out.println(pageInfo);
return pageInfo;
}
4.5–controller
package com.xmx.flowerspringboot.controller;
import com.github.pagehelper.PageInfo;
import com.xmx.flowerspringboot.dao.FlowerDao;
import com.xmx.flowerspringboot.pojo.Flower;
import com.xmx.flowerspringboot.service.FlowerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @create: 2022-03-01 17:56
* @author: 郑兴源
* @description:
**/
@RestController
public class FlowerController {
@Autowired
FlowerDao flowerDao;
@Autowired
FlowerService flowerService;
@GetMapping("/finfPage")
public PageInfo<Flower> findAll(@RequestParam(defaultValue = "1") Integer pageIndex,
@RequestParam(defaultValue = "3") Integer pageSize,
String search) {
PageInfo<Flower> pageInfo = flowerService.findPage(pageIndex, pageSize, search);
return pageInfo;
}
5.运行结果