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

专业网站设计公司个人简历word可编辑免费

专业网站设计公司,个人简历word可编辑免费,沈阳发布最新通告,wordpress显示大写目录 3. 员工管理 3.1 分页查询 3.1.1 基础分页 3.1.1.1 需求分析 3.1.1.2 接口文档 3.1.1.3 思路分析 3.1.1.4 功能开发 PageBean 3.1.1.5 功能测试 3.1.1.6 前后端联调 3.1.2 分页插件{分页查询-PageHelper插件} 3.1.2.1 介绍 官网#xff1a; 3.1.2.2 代码实…目录 3. 员工管理 3.1 分页查询 3.1.1 基础分页 3.1.1.1 需求分析 3.1.1.2 接口文档 3.1.1.3 思路分析 3.1.1.4 功能开发 PageBean 3.1.1.5 功能测试 3.1.1.6 前后端联调 3.1.2 分页插件{分页查询-PageHelper插件} 3.1.2.1 介绍 官网 3.1.2.2 代码实现 EmpController EmpService 3.1.2.3 测试 补充分页插件的两个重要参数 helperDialect分页插件会自动检测当前的数据库链接自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时可以使用下面的缩写值oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby特别注意使用 SqlServer2012 数据库时需要手动指定为 sqlserver2012否则会使用 SqlServer2005 的方式进行分页。你也可以实现 AbstractHelperDialect然后配置该属性为实现类的全限定名称即可使用自定义的实现方法。 reasonable分页合理化参数默认值为false。当该参数设置为 true 时pageNum0 时会查询第一页 pageNumpages超过总数时会查询最后一页。默认false 时直接根据参数进行查询。 3.2 分页查询(带条件) 3.2.2 条件分页查询 - 思路分析 3.2.3 功能开发 3.2.4 功能测试 3.2.5 前后端联调 3.3 删除员工 3.3.1 需求 3.3.2 接口文档 3.3.3 思路分析 PathVariable DeleteMapping Mybatis中的动态SQLforeach 3.3.4 功能开发 响应数据json格式 EmpController  3.3.5 功能测试 3.3.6 前后端联调 3. 员工管理 完成了部门管理的功能开发之后我们进入到下一环节员工管理功能的开发。 基于以上原型我们可以把员工管理功能分为 分页查询 带条件的分页查询 删除员工 新增员工 修改员工 那下面我们就先从分页查询功能开始学习。 3.1 分页查询 3.1.1 基础分页 3.1.1.1 需求分析 我们之前做的查询功能是将数据库中所有的数据查询出来并展示到页面上试想如果数据库中的数据有很多(假设有十几万条)的时候将数据全部展示出来肯定不现实那如何解决这个问题呢 使用分页解决这个问题。每次只展示一页的数据比如一页展示10条数据如果还想看其他的数据可以通过点击页码进行查询。 要想从数据库中进行分页查询我们要使用LIMIT关键字格式为limit 开始索引 每页显示的条数 -- 分页查询语法 -- 参数1:起始索引 (页码 - 1) * 每页展示记录数 -- 参数2:每页展示记录数 查询返回记录数 select * from emp limit 0,10;-- 查询第一页数据,每页展示5条记录 select * from emp limit 0,5;-- 查询第二页数据,每页展示5条记录 select * from emp limit 5,5;-- 查询第三页数据,每页展示5条记录 select * from emp limit 10,5; 观察以上SQL语句发现 开始索引一直在改变 每页显示条数是固定的 开始索引的计算公式 开 / 起始索引 (当前页码 - 1) * 每页显示条数 我们继续基于页面原型继续分析得出以下结论 前端在请求服务端时传递的参数 当前页码 page 每页显示条数 pageSize 后端需要响应什么数据给前端 所查询到的数据列表因为数据列表有多条记录因此存储到List 集合当中 总记录数 后台给前端返回的数据包含List集合(数据列表)、total(总记录数) 而这两部分我们通常封装到PageBean对象中并将该对象转换为json格式的数据响应回给浏览器。 Data NoArgsConstructor AllArgsConstructor public class PageBean { private Long total; //总记录数 private List rows; //当前页数据列表 } 3.1.1.2 接口文档 员工列表查询 基本信息 请求参数 参数格式queryString 参数说明 参数名 称是否必 须示例备注name否张姓名gender否1性别 , 1 男 , 2 女begin否2010-01- 01范围匹配的开始时间(入职日期)end否2020-01- 01范围匹配的结束时间(入职日期)page是1分页查询的页码如果未指定默认为1pageSize是10分页查询的每页记录数如果未指定默认为10 请求数据样例 2.1.3 响应数据 参数格式application/json 参数说明响应数据样例 3.1.1.3 思路分析 分页查询需要的数据封装在PageBean对象中   3.1.1.4 功能开发 通过查看接口文档员工列表查询 请求路径/emps 请求方式GET 请求参数跟随在请求路径后的参数字符串。 例/emps?page1pageSize10 响应数据json格式 EmpController   package com.gch.controller;import com.gch.pojo.PageBean; import com.gch.pojo.Result; import com.gch.service.EmpService; import lombok.extern.slf4j.Slf4j; 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;/**员工管理控制器*/ Slf4j RestController RequestMapping() public class EmpController {Autowiredprivate EmpService empService;/*** 条件分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* 默认值的设置可以通过注解RequestParam中的defaultValue()属性来指定默认值* 注意:形参page与pageSize需要于接口文档中的请求参数名保持一致* return*/GetMapping(/emps)public Result page(RequestParam(defaultValue 1) Integer page,RequestParam(defaultValue 10) Integer pageSize) { // 设置默认值,但写法比较繁琐 // if(page null) {page 1;} // if(pageSize null) {pageSize 10;}// 记录日志log.info(分页查询,参数:{},{},page,pageSize);// 调用service分页查询PageBean pageBean empService.page(page,pageSize);// 响应return Result.success(pageBean);} }RequestParam(defaultValue默认值) //设置请求参数默认值   EmpService   package com.gch.service;import com.gch.pojo.PageBean;/**员工业务规则*/ public interface EmpService {/*** 条件分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* return*/PageBean page(Integer page, Integer pageSize); }EmpServiceImpl   package com.gch.service.impl;import com.gch.mapper.EmpMapper; import com.gch.pojo.Dept; import com.gch.pojo.Emp; import com.gch.pojo.PageBean; import com.gch.service.EmpService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.List;/**员工业务实现类*/ Slf4j Service public class EmpServiceImpl implements EmpService {Autowiredprivate EmpMapper empMapper;/*** 分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* return*/Overridepublic PageBean page(Integer page, Integer pageSize) {// 1.获取总记录数Long total empMapper.count();// 2.获取分页查询的数据列表ListEmp rows empMapper.pageSelect((page - 1) * pageSize,pageSize);// 3.封装PageBean对象return new PageBean(total,rows);} }EmpMapper   package com.gch.mapper;import com.gch.pojo.Emp; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;import java.util.List;/**员工管理*/ Mapper public interface EmpMapper {/*** 查询总记录数* return*/Select(select count(*) from tlias.emp)public Long count();/*** 分页查询,获取数据列表/获取列表数据* param startIndex 起始索引* param pageSize 每页展示记录数* return*/Select(select * from tlias.emp limit #{startIndex},#{pageSize})public ListEmp pageSelect(Integer startIndex,Integer pageSize);}PageBean package com.gch.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.util.List;/**分页查询结果的封装类*/ Data NoArgsConstructor AllArgsConstructor public class PageBean {/** 总记录数 */private Long total;/** 当前页数据列表 */private List rows; }3.1.1.5 功能测试 功能开发完成后重新启动项目使用Postman发起GET请求 3.1.1.6 前后端联调 打开浏览器测试后端功能接口   总结 分页查询 请求参数页码、每页展示记录数响应结果总记录数 查询返回的数据列表 PageBean 注解 注解RequestParam的属性defaultValue可以来设置参数的默认值  3.1.2 分页插件{分页查询-PageHelper插件} 3.1.2.1 介绍 MyBatis框架当中分页查询的插件PageHelper通过这款插件就可以来简化分页查询的操作。 前面我们已经完了基础的分页查询大家会发现分页查询功能编写起来比较繁琐。   在Mapper接口中定义两个方法执行两条不同的SQL语句 查询总记录数 查询获取指定页码的数据列表 在Service当中调用Mapper接口的两个方法分别获取总记录数、查询结果列表然后在将获取的数据结果封装到PageBean对象中。 大家思考下在未来开发其他项目只要涉及到分页查询功能(例订单、用户、支付、商品)都必须按照以上操作完成功能开发 结论手动实现的原始方式的分页查询存在着步骤固定、代码繁琐的问题 。 解决方案可以使用一些现成的分页插件完成。对于Mybatis来讲现在最主流的就是PageHelper。 PageHelper是Mybatis的一款功能强大、方便易用的分页插件支持任何形式的单表、多表的分页查询。 官网 MyBatis 分页插件 PageHelper如果你也在用 MyBatis建议尝试该分页插件这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。https://pagehelper.github.io/ 如果我们使用PageHelper这款分页插件来实现分页我们程序员是不需要手动的去考虑分页的所有与分页相关的操作插件已经帮我们完成了所以我们只需要在Mapper接口当中正常的去执行查询就行(select * from xxx)不用考虑分页(limit、count(*))所有与分页相关的操作都不用我们做因为所有与分页相关的操作都是插件帮我们完成的。 在业务层我们要基于PageHelper进行分页主要涉及到三步操作 需要调用PageHelper这个插件当中的提供的一个核心类PageHelper调用PageHelper中的静态方法startPage(pagepageSize)来设置分页参数告诉PageHelper我要查第几页每页显示几条数据此时PageHelper会自动的对紧跟在其后的这条查询语句进行分页操作查询完毕之后可以把List集合强转为一个Page类型这个Page类是PageHelper当中提供的这个Page当中就封装了所有分页查询的结果包括总记录数Total包括结果列表Result接下来只需要把这两项封装到PageBean当中即可。  总结如果我们使用PageHelper这个分页插件来进行分页查询主要的步骤就是 第一步设置分页参数第二步正常的执行查询然后紧接着拿到查询结果之后把查询结果强转为Page类型第三步 然后紧接着再从Page当中拿到分页查询的结果就可以了。 在执行empMapper.list()方法时就是执行select * from emp 语句怎么能够实现分页操作呢 分页插件帮我们完成了以下操作(PageHelper底层) 先获取到要执行的SQL语句select * from emp并拦截 把SQL语句中的字段列表变为count(*)其实底层用的是count(0) 执行SQL语句select count(*) from emp  // 获取到总记录数 再对要执行的SQL语句select * from emp 进行改造在末尾添加 limit ? , ? 执行改造后的SQL语句select * from emp limit ? , ? 3.1.2.2 代码实现 当使用了PageHelper分页插件进行分页就无需在Mapper中进行手动分页了在Mapper中我们只需要进行正常的列表查询即可。在Service层中调用Mapper的方法之前设置分页参数在调用Mapper方法执行查询之后解析分页结果并将结果封装到PageBean对象中返回。 1、在pom.xml引入依赖 !-- PageHelper分页插件--dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactIdversion1.4.2/version/dependency EmpController package com.gch.controller;import com.gch.pojo.PageBean; import com.gch.pojo.Result; import com.gch.service.EmpService; import lombok.extern.slf4j.Slf4j; 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;/**员工管理控制器*/ Slf4j RestController RequestMapping() public class EmpController {Autowiredprivate EmpService empService;/*** 条件分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* 默认值的设置可以通过注解RequestParam中的defaultValue()属性来指定默认值* 注意:形参page与pageSize需要于接口文档中的请求参数名保持一致* return*/GetMapping(/emps)public Result page(RequestParam(defaultValue 1) Integer page,RequestParam(defaultValue 10) Integer pageSize) { // 设置默认值,但写法比较繁琐 // if(page null) {page 1;} // if(pageSize null) {pageSize 10;}// 记录日志log.info(分页查询,参数:{},{},page,pageSize);// 调用service分页查询PageBean pageBean empService.page(page,pageSize);// 响应return Result.success(pageBean);} }EmpService package com.gch.service;import com.gch.pojo.PageBean;/**员工业务规则*/ public interface EmpService {/*** 条件分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* return*/PageBean page(Integer page, Integer pageSize); }3、EmpServiceImpl  package com.gch.service.impl;import com.gch.mapper.EmpMapper; import com.gch.pojo.Emp; import com.gch.pojo.PageBean; import com.gch.service.EmpService; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.List;/**员工业务实现类*/ Slf4j Service public class EmpServiceImpl implements EmpService {Autowiredprivate EmpMapper empMapper;/*** 基于PageHelper分页插件实现分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* return*/Overridepublic PageBean page(Integer page,Integer pageSize){// 1.设置分页参数PageHelper.startPage(page,pageSize);// 2.执行查询ListEmp empList empMapper.list();// 获取分页结果PageEmp p (PageEmp)empList;// 3.封装PageBean对象return new PageBean(p.getTotal(),p.getResult());} }2、EmpMapper package com.gch.mapper;import com.gch.pojo.Emp; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;import java.util.List;/**员工管理*/ Mapper public interface EmpMapper {/*** 基于PageHelper进行员工信息分页查询* return*/Select(select * from tlias.emp)public ListEmp list(); }3.1.2.3 测试 功能开发完成后我们重启项目工程打开Postman发起GET请求访问 http://localhost:8080/emps?page1pageSize5 后端程序SQL输出   补充分页插件的两个重要参数 helperDialect分页插件会自动检测当前的数据库链接自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时可以使用下面的缩写值oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby特别注意使用 SqlServer2012 数据库时需要手动指定为 sqlserver2012否则会使用 SqlServer2005 的方式进行分页。你也可以实现 AbstractHelperDialect然后配置该属性为实现类的全限定名称即可使用自定义的实现方法。 reasonable分页合理化参数默认值为false。当该参数设置为 true 时pageNum0 时会查询第一页 pageNumpages超过总数时会查询最后一页。默认false 时直接根据参数进行查询。 在application.properties中配置PageHelper分页插件  #PageHelper分页插件的配置 #配置数据库方言 pagehelper.helper-dialectmysql #分页合理化参数配置 pagehelper.reasonabletrue 总结在MyBatis当中实现分页查询的两种方式 手动实现分页查询基于PageHelper分页插件实现分页查询 在项目开发当中我们都是基于PageHelper分页插件实现分页查询因为实现起来更加简洁开发起来更加高效  3.2 分页查询(带条件) 完了分页查询后下面我们需要在分页查询的基础上添加条件。 我们看到页面原型及需求中描述搜索栏的搜索条件有三个分别是 姓名模糊匹配 性别精确匹配 入职日期范围匹配 -- 条件分页查询(分页插件会自动帮我们做分页操作,因此不用写limit) select * from emp where name like concat(%, ?, %) -- 条件1:根据姓名模糊匹配and gender ? -- 条件2:根据性别精准匹配and entrydate between ? and ? -- 条件3:根据入职日期范围查询 order by update_time desc; 而且上述的三个条件都是可以传递也可以不传递的也就是动态的。 我们需要使用前面学习的Mybatis中的动态SQL 。   3.2.2 条件分页查询 - 思路分析 注意在项目开发当中尽量少使用基本数据类型而是使用包装类因为基本类型有默认值  用DateTimeFormat注解中的pattern属性指定日期时间类型的格式  3.2.3 功能开发 通过查看接口文档员工列表查询 请求路径/emps 请求方式GET 请求参数 参数名称是否必须示例备注name否张姓名gender否1性别 , 1 男 , 2 女begin否2010-01-01范围匹配的开始时间(入职日期)end否2020-01-01范围匹配的结束时间(入职日期)page是1分页查询的页码如果未指定默认为1pageSize是10分页查询的每页记录数如果未指定默认为10 在原有分页查询的代码基础上进行改造 EmpController package com.gch.controller;import com.gch.pojo.PageBean; import com.gch.pojo.Result; import com.gch.service.EmpService; import lombok.extern.slf4j.Slf4j; 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.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;import java.time.LocalDate;/**员工管理控制器*/ Slf4j RestController RequestMapping() public class EmpController {Autowiredprivate EmpService empService;/*** 条件分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* param name 姓名* param gender 性别* param begin 入职日期的开始时间* param end 入职日期的结束时间* 默认值的设置可以通过注解RequestParam中的defaultValue()属性来指定默认值* 用DateTimeFormat注解中的pattern属性指定日期时间类型的格式* 注意:方法签名上的形参变量名需要于接口文档中的请求参数名保持一致* return*/GetMapping(/emps)public Result page(RequestParam(defaultValue 1) Integer page,RequestParam(defaultValue 10) Integer pageSize,String name, Short gender,DateTimeFormat(pattern yyyy-MM-dd) LocalDate begin,DateTimeFormat(pattern yyyy-MM-dd) LocalDate end) {// 记录日志log.info(条件分页查询,参数:page:{},pageSize:{},name:{},gender:{},begin:{},end:{},page,pageSize,name,gender,begin,end);// 调用service分页查询PageBean pageBean empService.page(page,pageSize,name,gender,begin,end);// 响应return Result.success(pageBean);} }EmpService   package com.gch.service;import com.gch.pojo.PageBean;import java.time.LocalDate;/**员工业务规则*/ public interface EmpService {/*** 条件分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* param name 姓名* param gender 性别* param begin 入职日期的开始时间* param end 入职日期的结束时间* return*/PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end); }EmpServiceImpl   package com.gch.service.impl;import com.gch.mapper.EmpMapper; import com.gch.pojo.Emp; import com.gch.pojo.PageBean; import com.gch.service.EmpService; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.time.LocalDate; import java.util.List;/**员工业务实现类*/ Slf4j Service public class EmpServiceImpl implements EmpService {Autowiredprivate EmpMapper empMapper;/*** 基于PageHelper分页插件实现分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* param name 姓名* param gender 性别* param begin 入职日期的开始时间* param end 入职日期的结束时间* return*/Overridepublic PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end){// 1.设置分页参数PageHelper.startPage(page,pageSize);// 2.执行条件分页查询ListEmp empList empMapper.list(name,gender,begin,end);// 获取条件分页查询结果PageEmp p (PageEmp)empList;// 3.封装PageBean对象并返回return new PageBean(p.getTotal(),p.getResult());} }EmpMapper   package com.gch.mapper;import com.gch.pojo.Emp; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;import java.time.LocalDate; import java.util.List;/**员工管理*/ Mapper public interface EmpMapper {/*** 基于PageHelper进行员工信息条件分页查询* 查询条件参数:* param name 姓名* param gender 性别* param begin 入职日期的开始时间* param end 入职日期的结束时间* return*/public ListEmp list(String name, Short gender, LocalDate begin, LocalDate end); }EmpMapper.xml   ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.gch.mapper.EmpMapper!-- 动态条件查询操作--select idlist resultTypecom.gch.pojo.Empselect id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_timefrom tlias.empwhereif testname ! null and name ! name like concat(%, #{name}, %)/if/whereif testgender ! nulland gender #{gender}/ifif testbegin ! null and end ! nulland entrydate between #{begin} and #{end}/iforder by update_time desc/select /mapper3.2.4 功能测试 功能开发完成后重启项目工程打开Postman发起GET请求 控制台SQL语句   3.2.5 前后端联调 打开浏览器测试后端功能接口 3.3 删除员工 查询员完成之后我们继续开发新的功能删除员工。 3.3.1 需求 当我们勾选列表前面的复选框然后点击 批量删除 按钮就可以将这一批次的员工信息删除掉了也可以只勾选一个复选框仅删除一个员工信息。 问题我们需要开发两个功能接口吗一个删除单个员工一个删除多个员工 答案不需要。 只需要开发一个功能接口即可删除多个员工包含只删除一个员工 删除单条记录可以理解为是一种特殊的批量删除只不过这个批量删除里面只有一个。  3.3.2 接口文档 删除员工 基本信息   请求参数   参数格式路径参数 参数说明 响应数据 参数格式application/json 参数说明 3.3.3 思路分析 接口文档规定 前端请求路径/emps/{ids} 前端请求方式DELETE 问题1怎么在controller中接收请求路径中的路径参数 PathVariable 问题2如何限定请求方式是delete DeleteMapping 问题3在Mapper接口中执行delete操作的SQL语句时条件中的id值是不确定的是动态的怎么实现呢 Mybatis中的动态SQLforeach 一旦见到路径参数马上想到PathVariable注解。  SQL语句  -- 批量删除 delete from emp where id in(?,?,?); 3.3.4 功能开发 通过查看接口文档删除员工 请求路径/emps/{ids}请求方式DELETE请求参数路径参数 {ids} 响应数据json格式 EmpController  package com.gch.controller;import com.gch.pojo.PageBean; import com.gch.pojo.Result; import com.gch.service.EmpService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*;import java.time.LocalDate; import java.util.List;/**员工管理控制器*/ Slf4j RestController RequestMapping(/emps) public class EmpController {Autowiredprivate EmpService empService;/*** 条件分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* param name 姓名* param gender 性别* param begin 入职日期的开始时间* param end 入职日期的结束时间* 默认值的设置可以通过注解RequestParam中的defaultValue()属性来指定默认值* 用DateTimeFormat注解中的pattern属性指定日期时间类型的格式* 注意:方法签名上的形参变量名需要于接口文档中的请求参数名保持一致* return*/GetMappingpublic Result page(RequestParam(defaultValue 1) Integer page,RequestParam(defaultValue 10) Integer pageSize,String name, Short gender,DateTimeFormat(pattern yyyy-MM-dd) LocalDate begin,DateTimeFormat(pattern yyyy-MM-dd) LocalDate end) {// 记录日志log.info(条件分页查询,参数:page:{},pageSize:{},name:{},gender:{},begin:{},end:{},page,pageSize,name,gender,begin,end);// 调用service分页查询PageBean pageBean empService.page(page,pageSize,name,gender,begin,end);// 响应return Result.success(pageBean);}/*** 批量删除员工信息* param ids 接收前端传递过来的路径参数id数组* return*/DeleteMapping(/{ids})public Result delete(PathVariable ListInteger ids) {// 记录日志log.info(批量删除员工,ids:{},ids);// 调用service批量删除empService.delete(ids);// 响应return Result.success();} }EmpService   package com.gch.service;import com.gch.pojo.PageBean;import java.time.LocalDate; import java.util.List;/**员工业务规则*/ public interface EmpService {/*** 条件分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* param name 姓名* param gender 性别* param begin 入职日期的开始时间* param end 入职日期的结束时间* return*/PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end);/*** 批量删除员工信息操作* param ids 前端传递过来的路径参数id集合*/void delete(ListInteger ids); }EmpServiceImpl   package com.gch.service.impl;import com.gch.mapper.EmpMapper; import com.gch.pojo.Emp; import com.gch.pojo.PageBean; import com.gch.service.EmpService; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.time.LocalDate; import java.util.List;/**员工业务实现类*/ Slf4j Service public class EmpServiceImpl implements EmpService {Autowiredprivate EmpMapper empMapper;/*** 基于PageHelper分页插件实现分页查询* param page 分页查询的页码* param pageSize 分页查询的每页展示记录数* param name 姓名* param gender 性别* param begin 入职日期的开始时间* param end 入职日期的结束时间* return*/Overridepublic PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end){// 1.设置分页参数PageHelper.startPage(page,pageSize);// 2.执行条件分页查询ListEmp empList empMapper.list(name,gender,begin,end);// 获取条件分页查询结果PageEmp p (PageEmp)empList;// 3.封装PageBean对象并返回return new PageBean(p.getTotal(),p.getResult());}/*** 批量删除员工信息* param ids 前端传递过来的路径参数id集合*/Overridepublic void delete(ListInteger ids) {empMapper.deleteById(ids);} }EmpMapper   package com.gch.mapper;import com.gch.pojo.Emp; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;import java.time.LocalDate; import java.util.List;/**员工管理*/ Mapper public interface EmpMapper {/*** 基于PageHelper进行员工信息条件分页查询* 查询条件参数:* param name 姓名* param gender 性别* param begin 入职日期的开始时间* param end 入职日期的结束时间* return*/public ListEmp list(String name, Short gender, LocalDate begin, LocalDate end);/*** 批量删除员工信息* param ids 前端传递过来的路径参数id集合*/void deleteById(ListInteger ids); }EmpMapper.xml   ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.gch.mapper.EmpMapper!-- 动态条件查询操作--select idlist resultTypecom.gch.pojo.Empselect id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_timefrom tlias.empwhereif testname ! null and name ! name like concat(%, #{name}, %)/if/whereif testgender ! nulland gender #{gender}/ifif testbegin ! null and end ! nulland entrydate between #{begin} and #{end}/iforder by update_time desc/select!-- 批量删除操作 (?,?,?)--delete iddeleteByIddelete from emp where id inforeach collectionids itemid separator, open( close)#{id}/foreach/delete /mapper3.3.5 功能测试 功能开发完成后重启项目工程打开Postman发起DELETE请求 控制台SQL语句   3.3.6 前后端联调 打开浏览器测试后端功能接口
http://www.tj-hxxt.cn/news/132512.html

相关文章:

  • 网站含中国的备案小程序商城推广哪家好
  • 官网网站搭建需要多少钱网站被墙查询
  • 网站链接推广怎么做杭州做网站hzyze
  • 汉中专业网站建设服务佛山新网站建设报价
  • 石家庄网站开发哪家好wordpress 图片选择器
  • wordpress课件站模板android应用开发期末考试题
  • 自己做的网站打开空白汕头免费建站哪里有
  • 深圳网址网站建设公司福州市有哪些制作网站公司
  • 国内工程机械行业网站建设现状html制作网页的代码
  • 好看的网站都找谁做的手机网站建设czyzj
  • net实用网站开发酒泉市住房和城乡建设局网站
  • 专业建筑工程网站移动宽带
  • 做设计做网站信息技术制作网站首页
  • 网站的空间和域名是啥湖北联诺建设网站
  • 做网站的目的与意义做做网页
  • 友情链接有哪些展现形式株洲seo优化官网
  • 邯郸市教育考试院网站网站首页适配规则
  • 国家骨干高职院校建设网站网站建设数据库软件英文
  • html网站登陆注册怎么做海南代理注册公司
  • 查询网站空间的服务商今天泰安刚刚发生的新闻
  • 成都网站建设 Vr功能 卓 公司php做网站技术
  • 新网站如何做搜索引擎收录上海哪家做网站关键词排名
  • 宝塔wordpress ip访问全网最低价seo
  • 海口免费做网站信息服务平台怎么赚钱
  • 漂亮的网站改版中 html代码网站建设和前端开发的区别
  • 网站建设与域名建设微信代运营
  • 企业网站名称怎么写企业邮箱域名解析
  • 重庆做木门网站公司简介本地营销型网站建设
  • 桂林的网站建设公司cms开发教程
  • 房地产网站的设计要求接兼职建设网站