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

网站建设 ipv6微信开放平台表情包

网站建设 ipv6,微信开放平台表情包,wordpress采集优酷视频,保定网站设计网站目录 1、需求说明#xff1a;实现对部门表和员工表的增删改查 2、环境搭建 3、部门管理 3.1 查询部门 3.2 前后端联调 3.3 删除部门 3.4 新增部门 3.5 根据ID查询数据 3.5 修改部门 总结#xff08;Controller层参数接收#xff09;#xff1a; 4、员工管理 4.…目录 1、需求说明实现对部门表和员工表的增删改查  2、环境搭建 3、部门管理 3.1 查询部门 3.2 前后端联调 3.3 删除部门 3.4 新增部门 3.5 根据ID查询数据 3.5 修改部门 总结Controller层参数接收 4、员工管理 4.1 分页查询 4.2 分页查询插件-PageHelper 4.3 分页查询带条件 4.4 删除员工 4.5 新增员工 该项目是在看完黑马2023年JavaWeb视频跟着做的一个简单的SpringBoot项目 基于前后端分离模式进行开发会遵循接口文档的开发规范 开发流程 1、需求说明实现对部门表和员工表的增删改查  2、环境搭建 1 准备数据库表dept、emp 在本地创建tlias数据库并复制资料中的两张表 2 创建SpringBoot工程 pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdtlias/artifactIdversion1.0-SNAPSHOT/versionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.2.7.RELEASE/version/parentdependencies!-- mybatis的起步依赖--dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.2.2/version/dependency!-- mysql 驱动包--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope/dependency!-- springboot单元测试--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-test/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency/dependencies/project 启动类tliasquickstartapplication package pearl;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication//具有包扫描作用默认扫描当前包及其子包即demo01 public class tliasquickstartapplication {public static void main(String[] args) {SpringApplication.run(tliasquickstartapplication.class,args);}} 测试类tliasquickstartapplicationTest  package pearl;import org.springframework.boot.test.context.SpringBootTest;SpringBootTest //springboot整合单元测试的注解 public class tliasquickstartapplicationTest {}application.properties配置文件 # 配置数据库的链接信息 -四要素 #驱动类名称 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver #数据库连接的url spring.datasource.urljdbc:mysql://localhost:3306/tlias?serverTimezoneUTC #连接数据库的用户名 spring.datasource.usernameroot #连接数据库的密码 spring.datasource.password# 配置mybatis的日志指定输出到控制台 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl# 开启mybatis的驼峰命名自动映射开关 mybatis.configuration.map-underscore-to-camel-case true 创建实体类Emp、Dept 创建对应的Mapper接口、Service接口、实现类、Controller基础结构 3、部门管理 3.1 查询部门 EmpController: 首先返回一个空的数据测试端口号 Slf4j //定义一个日志记录对象 等价于下面对log对象的定义1. RestController public class DeptController { // 1.定义一个日志记录对象 // 1.private static Logger log LoggerFactory.getLogger(DeptController.class);// RequestMapping(value /depts,method RequestMethod.GET)//指定请求方式为getGetMapping(/depts)// 指定/depts路由的请求方式为get 与上一行代码等价public Result list(){log.info(查询全部部门数据);return Result.success();} } 然后运行启动类在postman中测试 没毛病然后定义一个Service层对象调用Service层方法查询数据 package pearl.controller;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.RequestMethod; import org.springframework.web.bind.annotation.RestController; import pearl.pojo.Dept; import pearl.pojo.Result; import pearl.service.DeptService;import java.util.List;Slf4j //定义一个日志记录对象 等价于下面对log对象的定义1. RestController public class DeptController { // 1.定义一个日志记录对象 // 1.private static Logger log LoggerFactory.getLogger(DeptController.class);Autowired//定义一个Service层对象private DeptService deptService;// RequestMapping(value /depts,method RequestMethod.GET)//指定请求方式为getGetMapping(/depts)// 指定/depts路由的请求方式为get 与上一行代码等价public Result list(){log.info(查询全部部门数据);// 调用service查询部门数据ListDept deptList deptService.list();//此时service层中还没定义该方法需要返回Service层中定义该方法return Result.success(deptList);} }此时DeptService中还没有查询全部数据的list()方法所以现在去DeptService中定义list()接口 /** 查询全部部门数据* */ListDept list(); 然后去 DeptService中定义list()的实现方法 即定义一个mapper层对象调用mapper层方法查询数据 package pearl.service.impl;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import pearl.mapper.DeptMapper; import pearl.pojo.Dept;import java.util.List;Service public class DeptService implements pearl.service.DeptService {// 定义一个Mapper层对象Autowiredprivate DeptMapper deptMapper;Overridepublic ListDept list() {ListDept deptList deptMapper.list();//此时service层中还没定义该方法需要返回Service层中定义该方法return deptList;} }此时mapper层中没有list()方法需要我们现在去DeptMapper中定义list()接口 /** 查询全部部门数据* */Select(select * from dept)ListDept list(); 由于该SQL语句较简单所以直接使用注解方式配置 现在需要按mapper--service---controller的路径去查看返回数据是否正确 然后运行启动类查看查询结果 完成 3.2 前后端联调 前后端联调将前端工程、后端工程都启动起来然后访问前端工程通过前端工程访问服务程序进而进行调试 1.将资料中提供的“前端工程”文件中的压缩包拷贝到一个没有中文不带空格的目录下解压 2.启动nginx访问测试http://localhost:90  --ngix占用的是90端口 点击文件中的nginx.exe 然后通过任务管理器的详细信息查看nginx是否启动完成 然后在浏览器访问http://localhost:90进入前端页面 3.3 删除部门 EmpController编写删除函数调用Service删除接口 // 删除DeleteMapping(/depts/{id})public Result delete(PathVariable Integer id){ //PathVariable 表示绑定路径中的参数idlog.info(删除id为id的数据);deptService.delete(id);return Result.success();} PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中 URL 中的 {xxx} 占位符可以通过PathVariable(“xxx“) 绑定到操作方法的入参中  EmpService接口 /** 根据ID删除数据* */void delete(Integer id); EmpService实现类编写删除函数调用mapper 层删除接口 Overridepublic void delete(Integer id){deptMapper.delete(id);return ;} EmpMapper: 编写删除接口与SQL语句 Delete(delete from dept where id #{id})void delete(Integer id); 启动测试类在postman中测试接口  完成 3.4 新增部门 新增部门逻辑与前面相似 注意新增部门时使用RequestBody 将请求参数封装到实体类中再在service层的实现方法类中补全实体类的属性值在执行插入到数据库的操作 EmpController: // 新增部门PostMapping(/depts)public Result insert(RequestBody Dept dept){//RequestBody 将获取到的请求参数封装到实体类dept中log.info(新增部门dept);deptService.insert(dept);return Result.success();} EmpService接口 /** 新增数据* */void insert(Dept dept); EmpService实现类 Overridepublic void insert(Dept dept) {dept.setCreateTime(LocalDateTime.now());//补全dept中的属性dept.setUpdateTime(LocalDateTime.now());deptMapper.insert(dept);} EmpMapper Insert(insert into dept (name,create_time,update_time) values(#{name},#{createTime},#{updateTime}))void insert(Dept dept); 运行完成 3.5 根据ID查询数据 EmpController: /** 根据ID查询* */GetMapping(/depts/{id})public Result selectById(PathVariable Integer id){log.info(获取id为id的数据);Dept dept deptService.selectById(id);return Result.success(dept);} 注意这里路径中携带参数一定要使用PathVariable注解绑定 路径中的参数 EmpService接口 /** 根据ID查询数据* */Dept selectById(Integer id); EmpService实现类 Overridepublic Dept selectById(Integer id){Dept dept deptMapper.selectById(id);return dept;} EmpMapper Select(select * from dept where id #{id})Dept selectById(Integer id); 3.5 修改部门 EmpController: /** 修改部门* */PutMapping(/depts)public Result update(RequestBody Dept dept){log.info(修改部门dept);deptService.update(dept);return Result.success();} EmpService接口 /** 修改部门* */void update(Dept dept);EmpService实现类 Overridepublic void update(Dept dept){dept.setUpdateTime(LocalDateTime.now());deptMapper.update(dept);} EmpMapper Update(update dept set name #{name}, update_time #{updateTime} where id #{id})void update(Dept dept); 完成  编辑之前 点击编辑 这里会自动回显利用的是通过ID查询数据功能 编辑完成后 此时部门管理的操作已经完成了返回来看我们DeptController文件中还可以优化 优化前 package pearl.controller;import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Insert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import pearl.pojo.Dept; import pearl.pojo.Result; import pearl.service.DeptService;import java.util.List;Slf4j //定义一个日志记录对象 等价于下面对log对象的定义1. RestController public class DeptController { // 1.定义一个日志记录对象 // 1.private static Logger log LoggerFactory.getLogger(DeptController.class);Autowired//定义一个Service层对象private DeptService deptService;/** 查询* */ // RequestMapping(value /depts,method RequestMethod.GET)//指定请求方式为getGetMapping(/depts)// 指定/depts路由的请求方式为get 与上一行代码等价public Result list(){log.info(查询全部部门数据);// 调用service查询部门数据ListDept deptList deptService.list();//此时service层中还没定义该方法需要返回Service层中定义该方法return Result.success(deptList);}/** 根据ID查询* */GetMapping(/depts/{id})public Result selectById(PathVariable Integer id){log.info(获取id为id的数据);Dept dept deptService.selectById(id);return Result.success(dept);}/** 删除* */DeleteMapping(/depts/{id})public Result delete(PathVariable Integer id){ //PathVariable 表示绑定路径中的参数idlog.info(删除id为id的数据);deptService.delete(id);return Result.success();}/** 新增部门* */PostMapping(/depts)public Result insert(RequestBody Dept dept){//RequestBody 将获取到的请求参数封装到实体类dept中log.info(新增部门dept);deptService.insert(dept);return Result.success();}/** 修改部门* */PutMapping(/depts)public Result update(RequestBody Dept dept){log.info(修改部门dept);deptService.update(dept);return Result.success();}}由于该文件下的路径都是在/depts路径下所以就把这部分抽出类简化代码 完整的请求路径为类上RequestMappering的路径方法前的路径 简化后的代码如下  优化后 package pearl.controller;import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Insert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import pearl.pojo.Dept; import pearl.pojo.Result; import pearl.service.DeptService;import java.util.List;Slf4j RequestMapping(/depts) RestController public class DeptController {Autowired//定义一个Service层对象private DeptService deptService;/** 查询* */GetMapping// 指定/depts路由的请求方式为get 与上一行代码等价public Result list(){log.info(查询全部部门数据);// 调用service查询部门数据ListDept deptList deptService.list();//此时service层中还没定义该方法需要返回Service层中定义该方法return Result.success(deptList);}/** 删除* */DeleteMapping(/{id})public Result delete(PathVariable Integer id){ //PathVariable 表示绑定路径中的参数idlog.info(删除id为id的数据);deptService.delete(id);return Result.success();}/** 新增部门* */PostMappingpublic Result insert(RequestBody Dept dept){//RequestBody 将获取到的请求参数封装到实体类dept中log.info(新增部门dept);deptService.insert(dept);return Result.success();}}总结Controller层参数接收 参数格式路径参数 使用 PathVariable 表示绑定路径中的参数id eg1: DeleteMapping(/{id})public Result delete(PathVariable Integer id) 参数格式application/json 使用RequestBody 将获取到的请求参数封装到实体类中 eg: 请求参数是Dept类的部分属性值PostMappingpublic Result insert(RequestBody Dept dept) 参数格式queryString RequestParam(defaultValue 1) 设置默认值 下面的参数名称和类型一定要和文档中的保持一致否则传输不了数据 eg: public Result selectByPage(RequestParam(defaultValue 1) Integer page, RequestParam(defaultValue 5) Integer pageSize)4、员工管理 4.1 分页查询 分页查询语法 -- 参数1 b: 起始索引  页码-1* l -- 参数2 l: 查询返回记录数 每页展示的记录数 select * from emp limit b,l; 首先查看接口文档发现需要返回的数据类型是Json文件包含总记录数和数据列表 我们最好的选择就是把记录数和数据列表封装成一个实体类然后再返回给前端 PageBean: package pearl.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;//数据列表 }EmpController: //接收前端的请求参数并返回Result型数据 package pearl.controller;import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import pearl.pojo.PageBean; import pearl.pojo.Result; import pearl.service.EmpService;RestController Slf4j public class EmpController {Autowiredprivate EmpService empService;/** 分页查询* */GetMapping(/emps) //RequestParam(defaultValue 1) 设置默认值public Result selectByPage(RequestParam(defaultValue 1) Integer page, //注意这里的参数名称一定要和文档中的保持一致否则肯传输不了数据RequestParam(defaultValue 5) Integer pageSize){log.info(查询数据第{}页{}条数据,page,pageSize);PageBean pageBean empService.selectByPage(page,pageSize);return Result.success(pageBean);} }EmpService接口 /** 分页查询* */PageBean selectByPage(Integer page, Integer pageSize); EmpService实现类 Autowiredprivate EmpMapper empMapper;/** 分页查询* */Overridepublic PageBean selectByPage(Integer page, Integer pageSize) {ListEmp rows empMapper.selectByPage((page-1)*pageSize,pageSize);Long total empMapper.count();final PageBean pageBean new PageBean(total,rows);return pageBean;} EmpMapper: /** 分页查询获取列表数据* */Select(select * from emp limit #{page},#{pageSize})ListEmp selectByPage(Integer page, Integer pageSize);/** 查询记录数* */Select(select count(*) from emp)Long count(); 完成 4.2 分页查询插件-PageHelper 使用PageHelper插件实现分页查询功能 pom文件中导入依赖 !-- pagehelper分页插件依赖 --dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactIdversion1.4.0/version/dependency EmpController 与EmpService接口代码不变 EmpService实现类 Overridepublic PageBean selectByPage(Integer page, Integer pageSize) { // 1. 设置分页参数PageHelper.startPage(page,pageSize); // 2. 执行查询ListEmp empList empMapper.list();PageEmp p (PageEmp) empList; // 3. 封装成bean对象PageBean pageBean new PageBean(p.getTotal(),p.getResult());return pageBean;} EmpMapper: /** 分页查询-使用PageHelper插件* */Select(select * from emp)public ListEmp list(); 完成 4.3 分页查询带条件 条件如上所示我们需要更改EmpController中的参数 EmpController GetMapping(/emps) //RequestParam(defaultValue 1) 设置默认值public Result selectByPage(RequestParam(defaultValue 1) Integer page, //注意这里的参数名称一定要和文档中的保持一致否则肯传输不了数据RequestParam(defaultValue 5) Integer pageSize,String name, Short gender,DateTimeFormat(pattern yyyy-MM-dd) LocalDate begin,//DateTimeFormat指定日期格式DateTimeFormat(pattern yyyy-MM-dd) LocalDate end){log.info(查询数据第{}页{}条数据,{},{},{},{},page,pageSize,name,gender,begin,end);PageBean pageBean empService.selectByPage(page,pageSize,name,gender,begin,end);return Result.success(pageBean);} EmpService接口也需要增加参数 /** 分页查询-带条件* */PageBean selectByPage(Integer page, Integer pageSize, String name, Short gender,LocalDate begin, LocalDate end); EmpService实现类参数 Overridepublic PageBean selectByPage(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. 封装成bean对象PageBean pageBean new PageBean(p.getTotal(),p.getResult());return pageBean;} EmpMapper接口 public ListEmp list(String name, Short gender,LocalDate begin, LocalDate end);由于条件参数非必须传递所以使用动态SQL配置在XML文件中 EmpMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacepearl.mapper.EmpMapperselect idlist resultTypepearl.pojo.Empselect * from empwhereif testname ! null and name ! name like concat(%, #{name},%)/ifif testgender ! nulland gender #{gender}/ifif testbegin ! null and end ! nulland entrydate between #{begin} and #{end}/if/where/select /mapper 完成! 4.4 删除员工 具体代码如下不做过多描述  4.5 新增员工 具体代码如下不做过多描述
http://www.dnsts.com.cn/news/265172.html

相关文章:

  • 想找在家做的兼职 有什么网站吗怎么设置微信小程序
  • 遵义做网站的公司成都网站制作公司报价
  • 罗田县住房和城乡建设局网站在线做托福的网站
  • 如何找人帮我做网站推广金色财经网站开发
  • 镇江网站制作价格wordpress同步到
  • 韩国优秀网站代理记账公司注册条件
  • 考生登录贵州省住房和城乡建设厅网站无锡网站开发培训
  • 做外文H网站网站怎么创建内容
  • 东莞网站排名优化报价嘉兴网站优化排名
  • 2003建网站怎样下载建设银行信用卡网站
  • 程序员不是做网站的威联通怎么建设网站
  • 做纺织机械的网站域名在线培训管理系统
  • 网站业务费如何做记账凭证给网站底部做友情链接
  • 郑州大型网站制作泰安seo服务
  • phpcms 怎么做网站济南网站建设及推广
  • 做简历的网站viso比较好的网站建设平台
  • 交友免费的网站建设ui培训报名
  • 安溪人做的网站网站换ip 有多大影响
  • 摄影作品网站推荐网站后台更新缓存失败
  • 做教学的视频网站有哪些问题域名和网址的区别
  • 做网站的哪里好wordpress entrance 1.2
  • 网站如何减少404跳转哪个网站可以做代销
  • 怎样免费自己做网站视频湖南雷锋建设有限公司网站
  • 未来做啥网站能致富沈阳项目
  • 建设单位到江川区住房和城乡建设局网站沧州做企业网站公司
  • 网站建设公司郴州中企动力是国企还是央企
  • 自适应网站优点缺点九江建设监督网站
  • 昆明网站外包vi设计公司联系方式
  • 网站平台延展性公司注册地址和实际不一样可以吗
  • 如何找回网站后台密码一级造价师准考证打印时间