SpringBoot整合MyBatis四种常用的分页方式

目录

方式1

一、准备工作

1. 创建表结构

2. 导入表数据

3. 导入pom.xml依赖

4. 配置application.yml文件

5. 创建公用的实体类

项目结构

2. 创建controller层

3. 创建service层 

4. 创建mapper层 

5. 创建xml文件 

6. 使用postman进行测试,测试结果如下

1. 项目整体结构

1. 创建controller层

2. 创建Service层

3. 创建Mapper层

5. 编写xml文件 

三、借助MyBatis提供的第三方PageHelper分页插件2 

1. 依赖pom.xml

2. 配置application.properties

3. 实现分页功能

四、借助MyBatis-Plus拦截器进行分页查询

1. 项目整体结构

2. 编写主配置类

3. 创建controller层

4. 创建Service层

5. 创建Mapper层

6. 使用postman进行测试,测试结果如下 

五、借助MyBabtis提供的RowBounds进行分页查询

1. 项目整体结构

2. 创建controller层

3. 创建Service层

4. 创建Mapper层

5. 创建xml文件

6. 使用postman进行测试,测试结果如下 


方式1

一、准备工作

1. 创建表结构
CREATE TABLE `order_info`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `info` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `time` datetime NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
2. 导入表数据
INSERT INTO `order_info` VALUES (1, '购买了手机', '2022-08-25 05:34:17');
INSERT INTO `order_info` VALUES (2, '购买了电脑', '2022-08-25 07:30:39');
INSERT INTO `order_info` VALUES (3, '购买了护手霜', '2022-08-17 22:35:07');
INSERT INTO `order_info` VALUES (4, '购买了泡面', '2022-08-23 08:35:36');
INSERT INTO `order_info` VALUES (5, '购买了纸巾', '2022-07-21 15:26:06');
INSERT INTO `order_info` VALUES (6, '购买了自热米饭', '2021-06-20 13:21:06');
INSERT INTO `order_info` VALUES (7, '购买了移动硬盘', '2022-06-11 11:22:03');
INSERT INTO `order_info` VALUES (8, '购买了狗粮', '2022-05-10 11:21:02');
INSERT INTO `order_info` VALUES (9, '购买了猫粮', '2022-04-10 09:11:02');
INSERT INTO `order_info` VALUES (10, '购买了遥控器', '2022-08-22 22:35:07');
INSERT INTO `order_info` VALUES (11, '购买了裤子', '2022-08-15 08:35:36');
INSERT INTO `order_info` VALUES (12, '购买了鞋子', '2022-08-21 08:35:36');
INSERT INTO `order_info` VALUES (13, '购买了水杯', '2022-08-26 19:39:19');
3. 导入pom.xml依赖
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <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.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
 
        <!--Mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
 
        <!--PageHelper依赖-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.3</version>
        </dependency>
 
        <!--Mybatis-Plus依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
    </dependencies>
4. 配置application.yml文件
server:
  port: 8080
 
spring:
  datasource:
    username: 你的mysql用户名
    password: 你的mysql密码
    url: jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver
 
mybatis:
  mapper-locations: classpath:mapping/*.xml
5. 创建公用的实体类

 
import java.util.Date;
 
 
public class OrderInfo {
 
    private int id;
    private String info;
    private Date time;
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getInfo() {
        return info;
    }
 
    public void setInfo(String info) {
        this.info = info;
    }
 
    public Date getTime() {
        return time;
    }
 
    public void setTime(Date time) {
        this.time = time;
    }
 
    @Override
    public String toString() {
        return "OrderInfo{" +
                "id=" + id +
                ", info='" + info + '\'' +
                ", time=" + time +
                '}';
    }
 
 
}

项目结构

2. 创建controller层
package com.ithuang.demo.controller;
 
import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.service.OrderInfoService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
import javax.annotation.Resource;
import java.util.List;
 
@RestController
public class OrderInfoController {
 
    @Resource
    private OrderInfoService orderInfoService;
 
    @GetMapping("/getOrderInfoList")
    public List<OrderInfo> getOrderInfoList(@RequestParam(value = "pageNow",defaultValue = "1") int pageNow,
                                            @RequestParam(value = "pageSize",defaultValue = "3") int pageSize){
 
        return orderInfoService.getOrderInfoList(pageNow,pageSize);
    }
}
3. 创建service层 
import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.mapper.OrderInfoMapper;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.List;
 
@Service
public class OrderInfoService {
 
    @Resource
    private OrderInfoMapper orderInfoMapper;
 
    public List<OrderInfo> getOrderInfoList(int pageNow, int pageSize) {
        if(pageNow == 1){
            pageNow = 0;
        }
        return orderInfoMapper.getOrderInfoList(pageNow,pageSize);
    }
}
4. 创建mapper层 
package com.ithuang.demo.mapper;
 
import com.ithuang.demo.bean.OrderInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
 
import java.util.List;
 
@Mapper
public interface OrderInfoMapper {
 
    List<OrderInfo> getOrderInfoList(@Param("pageNow") int pageNow,@Param("pageSize") int pageSize);
}
5. 创建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.ithuang.demo.mapper.OrderInfoMapper">
    <select id="getOrderInfoList" parameterType="int" resultType="com.ithuang.demo.bean.OrderInfo">
        SELECT * FROM order_info limit #{pageNow},#{pageSize}
    </select>
</mapper>
6. 使用postman进行测试,测试结果如下

       在MyBatis中配置了分页拦截器(PageInterceptor),就是在执行相关的Sql之前会做一些拦截的操作,这里通过调用startPage的方法,其实就是在查询getOrderInfoList之前会自动加上limit;这里通过setLocalPage方法,将分页信息保存在当前之后线程当中,查询方法与之处于同一个线程,共享ThreadLocal当中的数据,最后将getOrderInfoList查询好的数据结果放到PageInfo当中即可。

扩展:PageHelper.startPage(int PageNum,int PageSize):用来设置页面的位置和展示的数据条目数,我们设置每页展示5条数据。PageInfo用来封装页面信息,返回给前台界面。PageInfo中的一些我们需要用到的参数如下表:
PageInfo.list                                            结果集
PageInfo.pageNum                                 当前页码
PageInfo.pageSize                                  当前页面显示的数据条目
PageInfo.pages                                       总页数
PageInfo.total                                          数据的总条目数
PageInfo.prePage                                   上一页
PageInfo.nextPage                                 下一页
PageInfo.isFirstPage                              是否为第一页
PageInfo.isLastPage                              是否为最后一页
PageInfo.hasPreviousPage                   是否有上一页
PageHelper.hasNextPage                       是否有下一页

(1)引入pom.xml

<!-- 分页插件 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.5</version>
</dependency>

(2)打开application.properties,添加如下几行配置信息

#分页插件
pagehelper.helper-dialect=mysql
pagehelper.params=count=countSql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true

1. 项目整体结构

1. 创建controller层

Mapper文件中, SQL不用增加 limit分页指令,需要什么直接查就可以,Pagehelper 可以自动实现分页


 
import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.service.OrderInfoService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
import javax.annotation.Resource;
import java.util.List;
 
@RestController
public class OrderInfoController {
 
    @Resource
    private OrderInfoService orderInfoService;
 
    @GetMapping("/getOrderInfoList")
    public List<OrderInfo> getOrderInfoList(@RequestParam(value = "pageNow",defaultValue = "1") int pageNow,
                                            @RequestParam(value = "pageSize",defaultValue = "3") int pageSize){
 
        return orderInfoService.getOrderInfoList(pageNow,pageSize);
    }
}
2. 创建Service层

 
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.mapper.OrderInfoMapper;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.List;
 
@Service
public class OrderInfoService {
 
    @Resource
    private OrderInfoMapper orderInfoMapper;
 
    public List<OrderInfo> getOrderInfoList(int pageNow, int pageSize) {
        PageHelper.startPage(pageNow,pageSize);
        List<OrderInfo> orderInfoList = orderInfoMapper.getOrderInfoList();
        PageInfo<OrderInfo> userPageInfo = new PageInfo<>(orderInfoList);
        return userPageInfo.getList();
    }
}
3. 创建Mapper层

import com.ithuang.demo.bean.OrderInfo;
import org.apache.ibatis.annotations.Mapper;
 
import java.util.List;
 
@Mapper
public interface OrderInfoMapper {
 
    List<OrderInfo> getOrderInfoList();
}
5. 编写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.ithuang.demo.mapper.OrderInfoMapper">
    <select id="getOrderInfoList" parameterType="int" resultType="com.ithuang.demo.bean.OrderInfo">
        SELECT * FROM order_info
    </select>
</mapper>

三、借助MyBatis提供的第三方PageHelper分页插件2 

1. 依赖pom.xml
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.2.0</version>
</dependency>
2. 配置application.properties
#分页插件
pagehelper.helper-dialect=mysql
pagehelper.params=count=countSql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
3. 实现分页功能

①首页超链接

<a th:href="@{/get/page/1}">显示分页数据</a>

②controller方法

@RequestMapping("/get/page/{pageNo}")
public String getPage(
        @PathVariable("pageNo") Integer pageNo, 
        Model model) {
 
    // PageInfo 对象封装了和分页相关的所有信息
    PageInfo<Emp> pageInfo = empService.getPageInfo(pageNo);
    
    // 将 PageInfo 对象存入模型
    model.addAttribute("pageInfo", pageInfo);
    
    return "emp-page";
}

③service 方法

@Override
public PageInfo<Emp> getPageInfo(Integer pageNo) {
 
    // 1、确定每页显示数据的条数
    int pageSize = 5;
 
    // 2、设定分页数据:开启分页功能。开启后,后面执行的 SELECT 语句会自动被附加 LIMIT 子句,
    // 而且会自动查询总记录数
    PageHelper.startPage(pageNo, pageSize);
 
    // 3、正常执行查询
    List<Emp> empList = empMapper.selectAll();
 
    // 4、封装为 PageInfo 对象返回
    return new PageInfo<>(empList);
}

④页面展示

<tr>
    <td colspan="5">
 
        <span th:each="targetNum : ${pageInfo.navigatepageNums}">
 
            <!-- 不是当前页显示为超链接 -->
            <a th:if="${targetNum != pageInfo.pageNum}"
               th:href="@{/employee/page/}+${targetNum}"
               th:text="'['+${targetNum}+']'">目标页面的页码</a>
 
            <!-- 是当前页不需要显示为超链接 -->
            <span th:if="${targetNum == pageInfo.pageNum}" th:text="'['+${targetNum}+']'">当前页页码</span>
 
        </span>
    </td>
</tr>
<tr>
    <td colspan="5">
        <span th:if="${pageInfo.hasPreviousPage}">
            <a th:href="@{/employee/page/1}">首页</a>
            <a th:href="@{/employee/page/}+${pageInfo.prePage}">上一页</a>
        </span>
 
        [[${pageInfo.pageNum}]]/[[${pageInfo.pages}]]
        [[${pageInfo.pageNum}+'/'+${pageInfo.pages}]]
 
        <span th:if="${pageInfo.hasNextPage}">
            <a th:href="@{/employee/page/}+${pageInfo.nextPage}">下一页</a>
            <a th:href="@{/employee/page/}+${pageInfo.pages}">末页</a>
        </span>
    </td>
</tr>
<tr>
    <td colspan="5">
        <!-- 绑定值改变事件响应函数 -->
        <input id="jumpToPageNumInput" type="text" name="jumpToPageNum" placeholder="请输入您想直接跳转的页码" />
    </td>
</tr>

四、借助MyBatis-Plus拦截器进行分页查询

1. 项目整体结构

2. 编写主配置类
package com.ithuang.demo.config;
 
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class MybatisPlusConfig {
 
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }
}
3. 创建controller层
package com.ithuang.demo.controller;
 
import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.service.OrderInfoService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
import javax.annotation.Resource;
import java.util.List;
 
@RestController
public class OrderInfoController {
 
    @Resource
    private OrderInfoService orderInfoService;
 
    @GetMapping("/getOrderInfoList")
    public List<OrderInfo> getOrderInfoList(@RequestParam(value = "pageNow",defaultValue = "1") int pageNow,
                                            @RequestParam(value = "pageSize",defaultValue = "3") int pageSize){
 
        return orderInfoService.getOrderInfoList(pageNow,pageSize);
    }
}
4. 创建Service层
package com.ithuang.demo.service;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.mapper.OrderInfoMapper;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.List;
 
@Service
public class OrderInfoService {
 
    @Resource
    private OrderInfoMapper orderInfoMapper;
 
    public List<OrderInfo> getOrderInfoList(int pageNow, int pageSize) {
        Page<OrderInfo> page= new Page<>(pageNow,pageSize);
        IPage<OrderInfo> iPage = orderInfoMapper.selectPage(page,null);
        return iPage.getRecords();
    }
}
5. 创建Mapper层
package com.ithuang.demo.mapper;
 
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ithuang.demo.bean.OrderInfo;
import org.apache.ibatis.annotations.Mapper;
 
 
@Mapper
public interface OrderInfoMapper extends BaseMapper<OrderInfo> {
 
}
6. 使用postman进行测试,测试结果如下 

五、借助MyBabtis提供的RowBounds进行分页查询

RowBounds它是在SQL执行的结果进行截取分页的,所以不适合大量数据的截取和分页,它适合在查询较少的结果集当中使用。

1. 项目整体结构

2. 创建controller层
package com.ithuang.demo.controller;
 
import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.service.OrderInfoService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
import javax.annotation.Resource;
import java.util.List;
 
@RestController
public class OrderInfoController {
 
    @Resource
    private OrderInfoService orderInfoService;
 
    @GetMapping("/getOrderInfoList")
    public List<OrderInfo> getOrderInfoList(@RequestParam(value = "pageNow",defaultValue = "1") int pageNow,
                                            @RequestParam(value = "pageSize",defaultValue = "3") int pageSize){
 
        return orderInfoService.getOrderInfoList(pageNow,pageSize);
    }
}
3. 创建Service层
package com.ithuang.demo.service;
 
import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.mapper.OrderInfoMapper;
import org.apache.ibatis.session.RowBounds;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.List;
 
@Service
public class OrderInfoService {
 
    @Resource
    private OrderInfoMapper orderInfoMapper;
 
    public List<OrderInfo> getOrderInfoList(int pageNow, int pageSize) {
        RowBounds rowBounds = new RowBounds(pageNow,pageSize);
        return orderInfoMapper.getOrderInfoList(rowBounds);
    }
}
4. 创建Mapper层
package com.ithuang.demo.mapper;
 
import com.ithuang.demo.bean.OrderInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.session.RowBounds;
 
import java.util.List;
 
@Mapper
public interface OrderInfoMapper {
 
    List<OrderInfo> getOrderInfoList(RowBounds rowBounds);
}
5. 创建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.ithuang.demo.mapper.OrderInfoMapper">
    <select id="getOrderInfoList" resultType="com.ithuang.demo.bean.OrderInfo">
        SELECT * FROM order_info
    </select>
</mapper>
6. 使用postman进行测试,测试结果如下 

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

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

相关文章

第6章 6.1.1 文本格式化 sprintf函数(MATLAB入门课程)

sprintf函数源自 C 语言标准库中的同名函数&#xff0c;这个函数在 C 语言中用于创建格式化的字符串&#xff0c;且使用频率非常高。作为一门高级编程语言&#xff0c;MATLAB借鉴了 C 语言和其他编程语言中的许多特性和命名惯例。在MATLAB中&#xff0c;sprintf函数主要有两种用…

学习记录14-运算放大器2

目录 前言 一、理想放大器 二、虚断 二、虚短 虚短的两个使用条件 1.虚短概念 2.如果我们将运放的同相端和反相端颠倒会怎样呢&#xff1f; 总结 前言 主要讲述运算放大器的虚短虚断 一、理想放大器 如果没有基础或只是想简单了解&#xff0c;可以看我前一篇文章&am…

数学基础:常见函数图像

来自&#xff1a; https://www.desmos.com/calculator/l3u8133jwj?langzh-CN 推荐: https://www.shuxuele.com/index.html 一、三角函数 1.1 正弦 sin(x) 1.2 余弦 cos(x) 1.3 正切 tan(x) 1.4 余切 cot(x) 1.5 正弦余弦综合 1.6 正切余切综合 二、指数对数

【数据结构与算法】力扣 19. 删除链表的倒数第 N 个结点

题目描述 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a; head [1,2,3,4,5], n 2 输出&#xff1a; [1,2,3,5]示例 2&#xff1a; 输入&#xff1a; head [1], n 1 输出&#xff1a; []示例…

[方案实操|数据技术]数据要素十大创新模式(3):深数所-数据交易动态合规体系

“ 推动数据要素更好发展&#xff0c;政策创新是前提&#xff0c;数据质量管理是基础&#xff0c;安全和隐私保护是关键&#xff0c;合规性遵循是条件&#xff0c;数据共享和交易平台是手段。” 数据要素十大创新模式系列文章。 [方案实操|数据技术]数据要素十大创新模式(1)&a…

uniapp 表单使用Uview校验 包括城市选择器

<view><!-- 注意&#xff0c;如果需要兼容微信小程序&#xff0c;最好通过setRules方法设置rules规则 --><u--form labelPosition"left" :model"model1" :rules"rules" ref"uForm" labelWidth"174"><u…

生产端消息可靠性保证: 确认(Confirm)机制

1.PostConstruct注解 PostConstruct注解是Java EE规范中的一部分&#xff0c;主要用于标记在一个Bean初始化完成后需要执行的方法。这个注解由JSR-250定义&#xff0c;并且在Spring框架以及其他遵循Java EE标准的应用服务器中广泛支持。 功能与用途&#xff1a;初始化方法,当…

扫描IP开放端口该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开

扫描IP开放端口该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开 #/bin/bash #该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开放来哪些端口 #用telnet方式 IP$1 #IP119.254.3.28 #获得IP的前…

UML学习

UML(Unified Modeling Language)&#xff1a;统一建模语言&#xff0c;提供了一套符号和规则来帮助分析师和设计师表达系统的架构、行为和交互 类图&#xff1a;描绘类、接口之间的关系(继承、实现、关联、依赖等)以及类的内部结构(属性和方法)&#xff0c;直观展现系统的静态…

书生浦语大模型实战营第二次课作业

目录 教程来源1.环境配置1.1 初始化环境1.2 激活创建的虚拟环境然后继续安装所需的python包 2.下载模型并运行模型2.1 创建相应的文件夹和文件2.2 编写下载模型的代码运行下载模型2.3 编写运行模型的代码运行代码 测试模型效果 教程来源 视频教程&#xff1a;https://www.bili…

4套java开发的智慧系统源码 智慧校园系统源码 智慧工地系统源码 智慧城管系统源码

4套java智慧系统源码 智慧校园系统源码 智慧工地系统源码 智慧城管系统源码 3D 智能导诊系统源码 Java智慧校园系统源码 智慧学校源码 微信小程序电子班牌 智慧校园系统简介&#xff1a; 智慧校园的建设逐渐被师生、家长认可接受&#xff0c;智慧校园通过对在校师生、教务等…

IO-DAY8

使用消息队列去实现2个终端之间的互相聊天 要求:千万不要做出来2个终端之间的消息发送是读一写的&#xff0c;一定要能够做到&#xff0c;一个终端发送n条消息&#xff0c;另一个终端一条消息都不回复 A终端&#xff1a; #include<myhead.h> typedef struct msgbuf {lon…

蝙蝠优化算法(bat optimization algorithm)

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 算法背景 蝙蝠优化算法&#xff08;Bat Algorithm&#xff09;是一种基于群体智能的优化算法&#xff0c;它的灵感来源于蝙蝠捕食时的回声定位行…

LeetCode 377——组合总和 Ⅳ

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此题一看应该就是需要用到动态规划算法&#xff0c;假设我们以 f[d]表示总和为 d 的元素组合的个数&#xff0c;首先&#xff0c;我们遍历 nums 数组&#xff0c; 如果有 nums[i] < target&#xff0c;那么组…

阿赵UE学习笔记——26、动画混合空间

阿赵UE学习笔记目录   大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的使用。之前学习了通过蓝图直接控制动画播放&#xff0c;或者通过动画状态机去控制播放。这次来学习一种比较细致的动画控制播放方式&#xff0c;叫做动画混合空间。 一、使用的情景 假设我们现在需…

06_vim编辑器

为什么要使用vi和vim vi和vim是最常用的文本编辑工具&#xff0c;就像Windows上的笔记本一样。在linux中修改任何文件&#xff0c;不管是nginx配置还是系统配置文件&#xff0c;都会用到vi和vim命令。 很多软件的编辑接口实际上调用的是vi。 vim是vi的高级版&#xff0c;操作…

SpringBoot中注册Bean的方式汇总

文章目录 ComponentScan Componet相关注解BeanImportspring.factories总结Configuration和Component的主要区别&#xff1f;Bean是不是必须和Configuration一起使用&#xff1f;Import导入配置类有意义&#xff1f;出现异常&#xff1a;java.lang.NoClassDefFoundError: Could…

Scrapy框架spider类异常处理

说明&#xff1a;仅供学习使用&#xff0c;请勿用于非法用途&#xff0c;若有侵权&#xff0c;请联系博主删除 作者&#xff1a;zhu6201976 一、捕获Request所有网络相关异常 在spider类中&#xff0c;我们构造Request对象或FormRequest对象时&#xff0c;可传递参数errback回调…

小米强硬表态!敦促智己公司立即道歉 不接受个人轻描淡写的非正式道歉

快科技4月9日消息&#xff0c;在智己L6的发布会上&#xff0c;小米SU7成了“主角”之一&#xff0c;方方面面进行了对标和暗讽。 甚至官方还将智己L6和小米SU7 Max的各项参数与价格直接对比&#xff0c;引起了不小关注。 小米强硬表态&#xff01;敦促智己公司立即道歉 不接受…

electron打包Vue前端

Electron-Forge 打包Vue项目 效果&#xff1a;electronforge可将前端静态页面打包成.exe、.deb和.rpm等&#xff0c;能适配各种平台 示例&#xff1a;Windows环境下将前端 Vue 项目打包成exe文件 打包后的 exe 文件 运行 exe 文件 一、项目准备 开源项目 RouYi 下载 本…