JavaWeb--15 tlias-web-management 黑马程序员 部门管理(修改部门信息)

1 需求分析和开发规范

需求说明–接口文档–思路分析–开发–测试–前后端联调

  1. 查看页面原型明确需求

    • 根据页面原型和需求,进行表结构设计、编写接口文档(已提供)
  2. 阅读接口文档

  3. 思路分析

  4. 功能接口开发

    • 就是开发后台的业务功能,一个业务功能,我们称为一个接口
  5. 功能接口测试

    • 功能开发完毕后,先通过Postman进行功能接口测试,测试通过后,再和前端进行联调测试
  6. 前后端联调测试

    • 和前端开发人员开发好的前端工程一起测试

1 开发规范-Restful

http://localhost:8080/users/1  GET:查询id为1的用户
http://localhost:8080/users    POST:新增用户
http://localhost:8080/users    PUT:修改用户
http://localhost:8080/users/1  DELETE:删除id为1的用户

在REST风格的URL中,通过四种请求方式,来操作数据的增删改查。

  • GET : 查询
  • POST :新增
  • PUT :修改
  • DELETE :删除

2 开发规范-统一响应结果 Result

package com.itheima.pojo;

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

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
   
    private Integer code;//响应码,1 代表成功; 0 代表失败
    private String msg;  //响应信息 描述字符串
    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 error(String msg){
   
        return new Result(0,msg,null);
    }
}

创建项目工程目录结构:

controller:控制层。存放控制器Controller
mapper:持久层/数据访问层。存放mybatis的Mapper接口
pojo:存放实体类
service:业务层。存放业务代码

第1步:准备数据库表
第2步:创建一个SpringBoot工程,选择引入对应的起步依赖
第3步:配置文件application.properties中引入mybatis的配置信息,准备对应的实体类
第4步:准备对应的Mapper、Service(接口、实现类)、Controller基础结构

在这里插入图片描述

2 部门管理

开发的部门管理功能包含:

  1. 查询部门
  2. 删除部门
  3. 新增部门
  4. 更新部门

2.1 查询部门

DeptController

@Slf4j
@RestController
public class DeptController 
### 关于JavaWeb部门管理模块的实现方法 在JavaWeb开发中,部门管理是一个常见的功能需求。通常情况下,该功能涉及增删改查(CRUD)操作。以下是针对修改部门这一具体场景的设计思路和代码示例。 #### 数据库设计 假设有一个`department`表用于存储部门信息,其结构如下: | 字段名 | 类型 | 描述 | |--------------|-------------|----------------| | id | INT PRIMARY KEY | 主键 | | name | VARCHAR(100) | 部门名称 | | description | TEXT | 部门描述 | #### 后端逻辑实现 ##### 控制器层 (Controller) 控制器负责接收前端传来的数据并调用服务层处理业务逻辑。以下是一个基于Spring MVC框架的示例: ```java @RestController @RequestMapping("/departments") public class DepartmentController { @Autowired private DepartmentService departmentService; /** * 修改部门信息接口 */ @PutMapping("/{id}") public ResponseEntity<String> updateDepartment(@PathVariable Integer id, @RequestBody Department department) { try { department.setId(id); departmentService.updateDepartment(department); return ResponseEntity.ok("更新成功"); } catch (Exception e) { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("更新失败:" + e.getMessage()); } } } ``` 上述代码实现了通过RESTful API的方式提供修改部门的功能[^2]。 ##### 服务层 (Service) 服务层主要封装具体的业务逻辑,例如校验输入参数、调用DAO层等。 ```java @Service public class DepartmentService { @Autowired private DepartmentDao departmentDao; public void updateDepartment(Department department) throws Exception { if (department == null || department.getId() == null) { throw new IllegalArgumentException("部门ID不能为空"); } int result = departmentDao.updateById(department); if (result != 1) { throw new RuntimeException("未找到对应的部门记录"); } } } ``` 此处的服务层采用了简单的异常抛出机制来确保错误能够被及时捕获并反馈给客户端[^3]。 ##### DAO层 (Data Access Object) DAO层专注于与数据库交互的操作。这里可以借助MyBatis框架简化SQL语句编写过程。 ```xml <!-- MyBatis Mapper XML --> <update id="updateById" parameterType="com.example.model.Department"> UPDATE department SET name = #{name}, description = #{description} WHERE id = #{id} </update> ``` 以上XML片段展示了如何利用MyBatis动态替换占位符从而执行更新查询[^4]。 #### 前端页面展示 对于前端部分,可以通过HTML+JavaScript组合或者采用Vue.js/Angular这样的现代前端框架构建用户界面。下面给出一个基本的例子: ```html <form onsubmit="return saveChanges();"> <input type="hidden" id="deptId" value="${department.id}"> 名称:<input type="text" id="deptName" value="${department.name}"><br><br> 描述:<textarea id="deptDesc">${department.description}</textarea><br><br> <button type="submit">保存更改</button> </form> <script> function saveChanges() { var deptId = document.getElementById('deptId').value; var deptName = document.getElementById('deptName').value; var deptDesc = document.getElementById('deptDesc').value; fetch(`/departments/${deptId}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: deptName, description: deptDesc }) }).then(response => response.text()) .then(result => alert(result)); return false; // 阻止默认提交行为 } </script> ``` 此脚本允许管理员填写新的部门详情并通过AJAX请求发送至服务器进行持久化存储。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值