首页 > 其他分享 >Springboot 练习

Springboot 练习

时间:2024-09-30 23:21:17浏览次数:9  
标签:LocalDate Springboot wzb 练习 private import com public

        Springboot练习——分页查询

        Emp类

package com.wzb.pojo20240930;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;


@Data
@NoArgsConstructor
@AllArgsConstructor
public class Emp {
    private Integer id;
    private String username;
    private String password;
    private String name;
    private Short gender;
    private String image;
    private Short job;
    private LocalDate entrydate;
    private Integer deptId;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
}

        查询封装的PageBean类

package com.wzb.pojo20240930;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
    private Long total;
    private List<Emp> rows;
}

         查询返回的Result类

package com.wzb.pojo20240930;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
    private Integer code; // 响应码,1是响应成功,2是响应失败
    private String message; // 响应信息,描述响应结果的字符串
    private Object data; // 响应返回的数据

    // 响应成功,但不返回数据的方法
    public static Result success() {
        return new Result(1, "success", null);
    }
    // 响应成功,并且返回数据的方法
    public static Result success(Object data) {
        return new Result(1,"success", data);
    }
    // 响应失败的方法
    public static Result fail(String message) {
        return new Result(0, message, null);
    }
}

        Controller

package com.wzb.controller;

import com.wzb.pojo20240930.Emp;
import com.wzb.pojo20240930.PageBean;
import com.wzb.pojo20240930.Result;
import com.wzb.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDate;
import java.util.List;

@RestController
public class EmpController {
    @Autowired
    private EmpService empService;

    @GetMapping("/emps")
    // @RequestParam接收前端传递的想要查询的页数和每一页的记录数
    public Result pageSelect(@RequestParam(defaultValue = "1") Integer page,
                                @RequestParam(defaultValue = "10") Integer pageSize,
                                String name, Short gender,
    // 因为Http请求的路径全部都是字符串,所以说要用@DateTimeFormat注解并限定其格式将String解析为LocalDate
                                @DateTimeFormat(pattern = ("yyyy-MM-dd")) LocalDate begin,
                                @DateTimeFormat(pattern = ("yyyy-MM-dd")) LocalDate end) {
        // 日志记录
        System.out.println("进行了一次条件查询");
        // 通过Service层,操作数据库,并将查询的数据封装到PageBean中返回
        PageBean pageBean = empService.pageSelect(page, pageSize, name, gender, begin, end);
        return Result.success(pageBean);
    }


}

        Service

package com.wzb.service;

import com.wzb.pojo20240930.Emp;
import com.wzb.pojo20240930.PageBean;

import java.time.LocalDate;
import java.util.List;

public interface EmpService {

    PageBean pageSelect(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end);
}

        实现类

package com.wzb.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.wzb.mapper.EmpMapper;
import com.wzb.pojo20240930.Emp;
import com.wzb.pojo20240930.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDate;
import java.util.List;

@Service
public class EmpServiceImplement implements EmpService{

    @Autowired
    private EmpMapper empMapper;

    @Override
    public PageBean pageSelect(Integer page, Integer pageSize, String name, Short gender,
                               LocalDate begin, LocalDate end) {
        // 使用分页插件
        PageHelper.startPage(page, pageSize);
        // 调用mapper中的方法查询并返回
        List<Emp> empList = empMapper.pageSelect(name, gender, begin, end);
        Page<Emp> p = (Page<Emp>) empList;
        return new PageBean(p.getTotal(), p.getResult());
    }
}

        Mapper

 

package com.wzb.mapper;

import com.wzb.pojo20240930.Emp;
import org.apache.ibatis.annotations.Mapper;

import java.time.LocalDate;
import java.util.List;

@Mapper
public interface EmpMapper {

    List<Emp> pageSelect(String name, Short gender, LocalDate begin, LocalDate end);
}

        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.wzb.mapper.EmpMapper">
    <!-- 执行条件分页查询 -->
    <!-- 条件分页查询 -->
    <select id="pageSelect" resultType="com.wzb.pojo20240930.Emp">
        select * from emp
        <where>
            <if test="name != null and name != ''">
                name like concat('%',#{name},'%')
            </if>
            <if test="gender != null">
                and gender = #{gender}
            </if>
            <if test="begin != null and end != null">
                and entrydate between #{begin} and #{end}
            </if>
        </where>
        order by update_time desc
    </select>
</mapper>

 

 

 

 

 

标签:LocalDate,Springboot,wzb,练习,private,import,com,public
From: https://blog.csdn.net/Aishangyuwen/article/details/142665335

相关文章

  • MySQL之数据表,数据类型,表约束类型的指令讲解和练习
        本篇博客主要用来记录和分享本人学习MySQL数据库的基本操作指令的笔记和心得,包括数据表操作、数据管理、数据类型的讲解以及表的约束。通过实际的示例和注意事项,帮助大家更好地理解和应用这些知识。一、数据表操作指令1.创建数据表使用CREATETABLE指令可以创......
  • Java项目:223基于Springboot + vue实现的蜗牛兼职网(含论文+答辩PPT)
    作者主页:夜未央5788 简介:Java领域优质创作者、Java项目、学习资料、技术互助文末获取源码项目介绍基于Springboot+vue实现的蜗牛兼职网本系统包含管理员、用户两个角色。管理员角色:用户管理、企业管理、兼职信息管理、职位申请管理、留言板管理、系统管理。 用......
  • 基于SpringBoot的汽车资讯网站系统设计与实现(源码+论文+部署讲解等)
    博主介绍:✌全网粉丝60W+,csdn特邀作者、Java领域优质创作者、csdn/掘金/哔哩哔哩/知乎/道客/小红书等平台优质作者,计算机毕设实战导师,目前专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌技术栈范围:SpringBoot、Vue、SSM、Jsp、HLMT、Nodejs......
  • springboot+vue作业管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在教育信息化快速发展的今天,传统的教学管理模式正逐步向智能化、高效化转型。作业管理作为教学过程中的重要环节,其效率与质量直接影响到学生的学习效果和教师的教学质量。然而,当前许多学校的作业管理仍依赖于纸质作业和人工批改,这种方......
  • springboot+vue招聘系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在当今竞争激烈的就业市场中,招聘系统作为连接求职者和企业的桥梁,扮演着至关重要的角色。随着信息技术的飞速发展和互联网的普及,传统的招聘方式已经难以满足企业和求职者日益增长的需求。传统的招聘会、报纸招聘等模式不仅效率低下,而且......
  • springboot+vue闸口社区管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着城市化进程的加速,社区管理成为了城市治理中的重要一环。闸口社区作为城市中的一个典型代表,面临着人口密集、流动性大、管理复杂等多重挑战。传统的社区管理方式已经难以满足当前的需求,特别是在居民健康管理方面,缺乏系统化、信息化......
  • springboot+vue只租不卖汽车租赁平台【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着城市化进程的加速和人们生活水平的提高,汽车已成为现代生活中不可或缺的交通工具。然而,购车成本高、停车难、车辆维护繁琐等问题日益凸显,使得一部分人群对拥有私家车望而却步。与此同时,共享经济模式的兴起为汽车租赁市场带来了新的......
  • 基于springboot+vue.js的家装一体化平台附带文章源码部署视频讲解等
    文章目录前言详细视频演示具体实现截图核心技术介绍后端框架SpringBoot前端框架Vue持久层框架MyBaits为什么选择我代码参考数据库参考测试用例参考源码获取前言......
  • 基于Springboot在线服装销售平台【附源码+文档】
    ......
  • 基于Springboot学生心理咨询系统【附源码+文档】
    ......