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

网站管理员怎么联系邢台12345网站

网站管理员怎么联系,邢台12345网站,生鲜网站建设的项目总结,深圳高端建设网站在EmployeeMapper.java中插入数据#xff1a;一、新增员工 1.产品原型 2.接口设计 由于需要提交员工信息#xff0c;用post请求方式#xff0c;可以携带json数据 3.设计数据库的employee表 4.设计DTO 数据传输对象#xff08;DTO#xff09;#xff1a;封装前端提交过…在EmployeeMapper.java中插入数据一、新增员工 1.产品原型 2.接口设计 由于需要提交员工信息用post请求方式可以携带json数据 3.设计数据库的employee表 4.设计DTO 数据传输对象DTO封装前端提交过来的数据 实体类如下包含更多属性 public class Employee implements Serializable {private static final long serialVersionUID 1L;private Long id;private String username;private String name;private String password;private String phone;private String sex;private String idNumber;private Integer status;//JsonFormat(pattern yyyy-MM-dd HH:mm:ss)private LocalDateTime createTime;//JsonFormat(pattern yyyy-MM-dd HH:mm:ss)private LocalDateTime updateTime;private Long createUser;private Long updateUser;} 5.开发 在EmployeeController.java中创建新增员工的方法 说明接收前端的HTTP POST请求将请求体中的JSON数据转换为EmployeeDTO对象记录日志调用业务逻辑层的save方法来保存员工数据并返回一个成功的响应 /*** 新增员工* param employeeDTO* return*/PostMapping //表明此方法用来处理客户端发送的POST请求ApiOperation(新增员工) //为API提供文档说明//RequestBody主要用来接收前端传递给后端的json对象并将该对象自动转换为EmployeeDTO类型的实例public Result save(RequestBody EmployeeDTO employeeDTO){log.info(新增员工{},employeeDTO); //日志记录{}是占位符用于插入变量的值employeeService.save(employeeDTO); //该方法后续步骤会定义用于处理保存的逻辑return Result.success(); //Result是自定义的类用于封装API方法的响应数据} 在EmployeeService.java中声明新增员工方法 /*** 新增员工* param employeeDTO*/void save(EmployeeDTO employeeDTO); 在实现类EmployeeServicelmpl.java中实现新增员工方法 说明将EmployeeDTO对象转换为Employee对象并保存到数据库中 /*** 新增员工** param employeeDTO*/public void save(EmployeeDTO employeeDTO) {Employee employee new Employee();//将EmployeeDTO对象的属性复制到Employee对象中BeanUtils.copyProperties(employeeDTO, employee);//设置账号的状态默认正常状态 1表示正常 0表示锁定employee.setStatus(StatusConstant.ENABLE);//设置密码默认密码123456employee.setPassword(DigestUtils.md5DigestAsHex(PasswordConstant.DEFAULT_PASSWORD.getBytes()));//设置当前记录的创建时间和修改时间employee.setCreateTime(LocalDateTime.now());employee.setUpdateTime(LocalDateTime.now());//设置当前记录创建人id和修改人idemployee.setCreateUser(10L);//目前写个假数据后期修改employee.setUpdateUser(10L);employeeMapper.insert(employee);//后续步骤定义将Employee对象保存到数据库中} 在EmployeeMapper.java中插入员工数据 说明使用MyBatis框架的Java接口方法定义了插入员工数据到数据库的操作 /*** 插入员工数据* param employee*///Insert是一个MyBatis框架的注解用来指定SQL插入语句//#{name}、#{username}等是MyBatis的参数占位符它们将被实际的员工对象属性值所替换Insert(insert into employee (name, username, password, phone, sex, id_number, create_time, update_time, create_user, update_user,status) values (#{name},#{username},#{password},#{phone},#{sex},#{idNumber},#{createTime},#{updateTime},#{createUser},#{updateUser},#{status}))void insert(Employee employee); 6.功能测试 1通过前后端联调测试 由于前后端并行开发后端开发完之后前端可能没有开发完成因此此方法局限性大不常用 添加成功 2通过接口文档测试 在接口文档中的员工登录中生成一个jwt令牌复制到全局参数设置中刷新页面令牌会2小时后失效若报错401的话需要重新生成令牌 在新增员工中自动添加了请求头部此时发送请求就可以返回响应数据库中成功添加了数据 7.代码完善 1录入的用户名已存在抛出异常后没有处理 当重新提交zhangsan的数据时因数据重复会抛出异常需要重写异常 说明异常处理方法它使用了Spring框架的ExceptionHandler注解来捕获并处理特定的异常类型SQLIntegrityConstraintViolationException /*** 处理SQL异常* param ex* return*/ExceptionHandler //捕获并处理特定的异常类型public Result exceptionHandler(SQLIntegrityConstraintViolationException ex){//Duplicate entry zhangsan for key employee.idx_usernameString message ex.getMessage(); //获取异常的详细信息if(message.contains(Duplicate entry)){String[] sp message.split( ); //通过空格分割异常消息然后提取用户名String username sp[2];String msg username MessageConstant.ALREADY_EXISTS; //自定义的错误消息:用户已存在return Result.error(msg);}else {return Result.error(MessageConstant.UNKNOWN_ERROR);//自定义的错误消息:未知错误}} 2新增员工时创建人id和修改人id设置为了固定值 需要通过某种方式动态获取当前登录员工的id 客户端发送的每一个请求对应一个线程因此可以把id存入ThreadLocal再在server里取出来 在使用ThreadLocal时往往会进行一个简单的封装包装成一个工具类common-context-BaseContext package com.sky.context;public class BaseContext {public static ThreadLocalLong threadLocal new ThreadLocal();public static void setCurrentId(Long id) {threadLocal.set(id);}public static Long getCurrentId() {return threadLocal.get();}public static void removeCurrentId() {threadLocal.remove();}} 需要在JwtTokenAdminlnterceptor.java拦截器取出ID BaseContext.setCurrentId(empId); 需要在EmployeeServicelmpl.java实现类获得ID //设置当前记录创建人id和修改人idemployee.setCreateUser(BaseContext.getCurrentId());employee.setUpdateUser(BaseContext.getCurrentId()); 二、员工分页查询 1.产品原型 2.接口设计 3.设计DTO 4.开发 在EmployeeController.java中创建员工分页查询的方法 /*** 员工分页查询* param employeePageQueryDTO* return*/GetMapping(/page)ApiOperation(员工分页查询)public ResultPageResult page(EmployeePageQueryDTO employeePageQueryDTO){log.info(员工分页查询参数为{}, employeePageQueryDTO);PageResult pageResult employeeService.pageQuery(employeePageQueryDTO); //service存储分页查询的方法return Result.success(pageResult);} 在EmployeeService.java中声明员工分页查询方法 /*** 分页查询方法* param employeePageQueryDTO* return*/PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO); 在实现类EmployeeServicelmpl.java中实现员工分页查询方法 说明使用mybatis中的pagehelper插件已经在初始代码pom.xml中引入可以简化分页操作 dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactId/dependency /*** 分页查询* param employeePageQueryDTO* return*/public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {//select * from employee limit 0,10limit关键字查询第0-10条//实现原理将page封装后存入threadlocal在分页查询前取出来动态拼接实现SQLPageHelper.startPage(employeePageQueryDTO.getPage(),employeePageQueryDTO.getPageSize());PageEmployee page employeeMapper.pageQuery(employeePageQueryDTO); //返回pagehelper格式的对象long total page.getTotal();ListEmployee records page.getResult();return new PageResult(total, records);} 在EmployeeMapper.java中插入数据 /*** 员工分页查询* param employeePageQueryDTO* return*/PageEmployee pageQuery(EmployeePageQueryDTO employeePageQueryDTO); 说明使用动态SQL不再使用注解的方式需要写到映射文件server-resources-mapper-EmployeeMapper.xml中  ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.sky.mapper.EmployeeMapperselect idpageQuery resultTypecom.sky.entity.Employeeselect * from employeewhereif testname ! null and name ! and name like concat(%,#{name},%)/if/whereorder by create_time desc/select /mapper5.功能测试
http://www.w-s-a.com/news/966078/

相关文章:

  • 榆林电商网站建设网上做试卷的网站
  • 文山网站建设代理中公教育培训机构官网
  • 郑州it培训机构有哪些上海外贸网站seo
  • dw做网站的实用特效广东住房与城乡建设厅网站
  • 模板网站 动易哪方面的网站
  • 怎么给网站做外链邵连虎郑州做网页的公司
  • 重庆网站开发哪家好宁波网站建设caiyiduo
  • 手机网站建设价格手机网站模版更换技巧
  • 哈尔滨松北区建设局网站美妆网站建设
  • 不需要网站备案的空间网站推广的基本方法是哪四个
  • 如何检查网站死链劳动仲裁院内部网站建设
  • 江西省住房和城乡建设网站合同管理系统
  • 网站建设质量保证福州网络推广
  • 高唐网站建设公司广州南站在哪个区
  • 广西柳州网站制作公司郴州网红打卡景点
  • 做网站要固定ip拍摄公司宣传片制作
  • 专业微网站电话号码做软件难吗
  • 邢台网站制作哪家强上海做网站设计
  • 大连网站建设外贸wordpress添加文章属性
  • 商城网站建设合同范本网上哪里可以免费学编程
  • 服务器公司网站博客wordpress怎么编辑
  • 网站建设网络推广柯西乡塘网站建设
  • 企业做网站需要多少钱企业资质查询系统官网
  • 网站建设需要知识百度统计数据
  • 自已如何做网站建设通网站会员共享密码
  • 做网站学习什么wordpress 文件夹
  • 前端移动网站开发wordpress图文混排
  • 企业网站建站那种好商城类网站怎么优化
  • 手机微网站怎么制作的网上找设计师
  • 网站建设包括哪些方面学校网站 建设