JavaWeb笔记_11

本文介绍了在Springboot项目中进行分页查询的两种方法,包括自定义PageBean进行手动分页和使用PageHelper插件自动分页。同时,还展示了如何实现文件上传至本地的功能,包括前端表单设计和后端接收并存储文件的代码实现。
摘要由CSDN通过智能技术生成

Springboot 练习2 (续JavaWeb笔记_10)

1. 查询

1.1.1 分页查询

  • 需求:
    • 返回查询到的记录数
    • 返回查询到的记录
1.1.2 创建JavaBean封装结果
  • 由于返回结果为两个,需新建一个Bean来封装结返回果
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
    private Long count; //总记录数
    private List<Account> accounts;	//查询到的记录
}

1.1.3 代码实现

  • 持久层:在AccountMapper接口中声明一下方法
    • 查询总记录数方法
    • 查询结果方法
    @Select("select * from mybatis.account limit #{start}, #{size}")
    List<Account> findALlOfPagination(int start, Integer size);
    
    @Select("select count(*) from mybatis.account")
    Long count();
  • 服务层:在AccountService接口声明方法
  • 在AccountServiceImpl类实现方法
    @Override
    public PageBean findALlOfPagination(Integer start, Integer size) {
    	// 创建包装类
        PageBean pageBean = new PageBean();
        //将查询出的总记录数放入包装对象
        pageBean.setCount(am.count());
        //将查询出的录数放入包装对象
        //起始页码为:(当前页码 - 1) * 每页显示记录数
        pageBean.setAccounts(am.findALlOfPagination((start - 1) * size, size));
        return pageBean;
    }
  • 控制层:接受数据,返回数据
    /**
     * 分页查询
     * @param start 起始页码
     * @param size  每页显示记录数
     * @return
     */
    @RequestMapping("/accounts")
    Result findALlOfPagination(Integer start, Integer size){
        PageBean pb = as.findALlOfPagination(start, size);
        return Result.success(pb);
    }
  • 查询结果如下:在这里插入图片描述

1.2使用PageHelper分页查询

1.2.1 导入依赖

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

1.2.2 在服务层创建对象

    @Override
    public PageBean findALlOfPagination(Integer start, Integer size) {
    	//将当前页码和每页显示记录数交给对象
        PageHelper.startPage(start, size);
        //该对象会自动计算起始页码 并将分页查询结果存放于Result属性下;查询记录数存放在Total属性下
        Page<Account> all = am.findAll();
        return new PageBean(all.getTotal(), all.getResult());
    }

1. 文件上传

1.1 文件上传到本地

1.1.1 前端页码
    <form action="/upload" method="post" enctype="multipart/form-data">
        姓名: <input type="text" name="username"><br>
        年龄: <input type="text" name="age"><br>
        头像: <input type="file" name="file"><br>
        <input type="submit" value="提交">
    </form>
1.1.2 代码实现
@RestController
public class Upload {

    @RequestMapping("/upload")
    Result upload(MultipartFile file) throws IOException {

        //创建存储目的地
        File path = new File("D:\\" + file.getOriginalFilename());
        //将file对象存储到path下,与源文件同名
        file.transferTo(path);

        return Result.success();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值