Java开发学习笔记

目录

 1. 实体类(Entity Layer)

2. Mapper层(Mapper Layer)

3. Service层(Service Layer)

4. Controller层(Controller Layer)

 5. 前端开发

总结

开发顺序

1. **需求分析**:

2. **设计数据模型(实体类)**:

3. **更新数据库表结构**:

4. **编写Mapper层**:

5. **编写Service层**:

6. **编写Controller层**:

7. **前端开发**:

8. **单元测试和集成测试**:

9. **部署和验证**:


通俗易懂的语言来解释各个层的作用。

 1. 实体类(Entity Layer)

**实体类**就像是你设计的数据模型,它定义了数据的结构和属性。简单来说,实体类就是你在代码中用来表示数据库表的类。

- **作用**:定义数据的结构和字段。
- **例子**:假设你有一个社团(Club),实体类会包含社团的名字、描述、当前人数等字段。

public class Club {
    private Integer id;
    private String name;
    private String description;
    private Integer currentnums; // 社团当前人数字段
}


2. Mapper层(Mapper Layer)

**Mapper层**是连接Java对象和数据库操作的桥梁。它定义了如何与数据库进行交互,包括查询、插入、更新和删除数据。

- **作用**:定义数据库操作的SQL语句。
- **例子**:假设你需要增加社团的当前人数,Mapper层会定义相应的SQL语句。

@Mapper
public interface ClubMapper extends BaseMapper<Club> {

    @Update("update club set currentnums = currentnums + 1 where id = #{clubId}")
    void incrementCurrentnums(Integer clubId);
}


3. Service层(Service Layer)

**Service层**是业务逻辑的核心,负责处理具体的业务操作。它调用Mapper层的方法来执行数据库操作,并处理业务逻辑。

- **作用**:实现业务逻辑,处理复杂的业务操作。
- **例子**:当学生报名并通过审核时,Service层会调用Mapper层的方法来更新社团的当前人数。

@Service
public class ClubService extends ServiceImpl<ClubMapper, Club> {

    public void updateClubCurrentNum(int clubId) {
        clubMapper.incrementCurrentnums(clubId);
    }
}


4. Controller层(Controller Layer)

**Controller层**是前端和后端之间的接口,负责接收前端的请求,调用Service层的方法,并返回响应结果给前端。

- **作用**:处理HTTP请求,调用Service层的方法,并返回响应。
- **例子**:当用户点击“通过”按钮时,Controller层会调用Service层的方法来更新社团的当前人数。

@RestController
@RequestMapping("/club")
public class ClubController {

    @PostMapping("/approve-membership")
    public R<String> approveMembership(@RequestParam int clubId) {
        clubService.updateClubCurrentNum(clubId);
        return R.ok("会员审核通过,当前人数已更新。");
    }
}


 5. 前端开发

**前端**是用户界面,负责展示数据和接收用户的输入。

- **作用**:展示数据,接收用户操作,并发送请求到后端。
- **例子**:前端页面上显示待审批的申请列表,用户点击“通过”或“拒绝”按钮,前端发送请求到后端。

<button v-if="request.approvalStatus === 0" @click="approve(request.clubId, request.userId, request.approvalId, 1)">通过</button>
<button v-if="request.approvalStatus === 0" @click="approve(request.clubId, request.userId, request.approvalId, 2)">拒绝</button>


总结

- **实体类**:定义数据结构。
- **Mapper层**:定义数据库操作。
- **Service层**:处理业务逻辑。
- **Controller层**:处理HTTP请求和响应。
- **前端**:展示数据和接收用户操作。

通过这些层次的分工合作,可以确保代码的清晰性和可维护性。

开发顺序

在开发新功能时,通常遵循一定的顺序来确保代码的逻辑性和一致性。以下是推荐的步骤:

1. **需求分析**:


   - 明确新功能的需求和业务逻辑。
   - 确定该功能涉及的数据模型、接口和用户交互。

2. **设计数据模型(实体类)**:


   - 根据需求设计或修改实体类(如`Club`),确保实体类能够存储新的字段或属性。
   - 如果需要新增字段,确保这些字段在数据库中也存在,并且与实体类中的字段映射一致。

3. **更新数据库表结构**:


   - 使用数据库迁移工具(如Flyway、Liquibase等)或手动编写SQL脚本更新数据库表结构。
   - 确保数据库字段与实体类中的字段一致。

4. **编写Mapper层**:


   - 更新或创建Mapper接口和XML文件,定义新的SQL查询或更新操作。
   - 确保Mapper方法能够正确处理新的业务逻辑。

5. **编写Service层**:


   - 在Service层实现具体的业务逻辑。
   - 调用Mapper层的方法来执行数据库操作。
   - 处理异常和错误情况,确保业务逻辑的健壮性。

6. **编写Controller层**:


   - 在Controller层添加新的API接口,用于接收前端请求。
   - 调用Service层的方法来处理业务逻辑。
   - 返回响应结果给前端。

7. **前端开发**:


   - 更新前端页面和组件,添加新的UI元素和事件绑定。
   - 编写JavaScript代码,调用后端API并处理响应。

8. **单元测试和集成测试**:


   - 编写单元测试,确保每个模块的功能正确。
   - 编写集成测试,确保各个模块之间的交互正常。

9. **部署和验证**:


   - 将新功能部署到测试环境,进行功能验证。
   - 进行性能测试和压力测试,确保系统稳定。
   - 验证所有相关功能是否正常工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值