滚雪球学MyBatis-Plus(06):服务类与控制器

前言

在上期内容中,我们详细讲解了如何创建实体类和 Mapper 接口,并配置 MyBatis Plus 的 Mapper 扫描。通过这些步骤,我们成功实现了数据库表结构到 Java 对象的映射,并能够进行基本的 CRUD 操作。这为我们的开发提供了强有力的数据访问层支持。

本期内容将进一步深入,重点介绍如何创建服务类和控制器。服务类负责处理业务逻辑,控制器负责处理 HTTP 请求并调用服务类的方法。通过这些步骤,你将学会如何构建一个完整的 Web 应用程序,并提供 RESTful API 接口供前端或其他服务调用。

一、创建服务类

服务类是应用程序的业务逻辑层。MyBatis Plus 提供了 IServiceServiceImpl,简化了服务层的开发。

  1. 创建服务接口

    • src/main/java/com/example/mybatisplusdemo/service 目录下创建一个包 service,并在该包下创建 UserService 接口:
      package com.example.mybatisplusdemo.service;
      
      import com.baomidou.mybatisplus.extension.service.IService;
      import com.example.mybatisplusdemo.entity.User;
      
      public interface UserService extends IService<User> {
      }
      
  2. 实现服务接口

    • src/main/java/com/example/mybatisplusdemo/service/impl 目录下创建一个包 service.impl,并在该包下创建 UserServiceImpl 类:
      package com.example.mybatisplusdemo.service.impl;
      
      import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
      import com.example.mybatisplusdemo.entity.User;
      import com.example.mybatisplusdemo.mapper.UserMapper;
      import com.example.mybatisplusdemo.service.UserService;
      import org.springframework.stereotype.Service;
      
      @Service
      public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
      }
      
  3. 注解说明

    • @Service:标记该类为服务类,Spring 会自动扫描和注册。
    • ServiceImpl:MyBatis Plus 提供的通用 Service 实现类,简化了服务层的开发。
二、创建控制器

控制器是应用程序的表示层,用于处理客户端的 HTTP 请求。Spring Boot 提供了强大的注解支持,简化了控制器的开发。

  1. 创建控制器类

    • src/main/java/com/example/mybatisplusdemo/controller 目录下创建一个包 controller,并在该包下创建 UserController 类:
      package com.example.mybatisplusdemo.controller;
      
      import com.example.mybatisplusdemo.entity.User;
      import com.example.mybatisplusdemo.service.UserService;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.web.bind.annotation.*;
      
      import java.util.List;
      
      @RestController
      @RequestMapping("/user")
      public class UserController {
      
          @Autowired
          private UserService userService;
      
          @GetMapping("/list")
          public List<User> list() {
              return userService.list();
          }
      
          @PostMapping("/add")
          public boolean add(@RequestBody User user) {
              return userService.save(user);
          }
      
          @PutMapping("/update")
          public boolean update(@RequestBody User user) {
              return userService.updateById(user);
          }
      
          @DeleteMapping("/delete/{id}")
          public boolean delete(@PathVariable Long id) {
              return userService.removeById(id);
          }
      }
      
  2. 注解说明

    • @RestController:标记该类为 REST 控制器,Spring 会自动扫描和注册,并将返回值转换为 JSON。
    • @RequestMapping:定义控制器的根路径。
    • @GetMapping@PostMapping@PutMapping@DeleteMapping:分别对应 HTTP 的 GET、POST、PUT、DELETE 请求。
三、测试控制器

为了确保我们的服务类和控制器工作正常,我们需要进行一些基本的测试。

  1. 启动 Spring Boot 应用

    • 在 IDE 中运行 MybatisPlusDemoApplication 类,启动项目。
  2. 测试 RESTful API

    • 使用 Postman 或其他 API 测试工具,测试各个接口:
      • GET /user/list:获取用户列表。
      • POST /user/add:添加新用户。
      • PUT /user/update:更新用户信息。
      • DELETE /user/delete/{id}:删除用户。
  3. 接口示例

    • GET /user/list
      [
        {
          "id": 1,
          "name": "John Doe",
          "age": 25,
          "email": "john.doe@example.com"
        }
      ]
      
    • POST /user/add
      {
        "name": "Jane Doe",
        "age": 24,
        "email": "jane.doe@example.com"
      }
      
    • PUT /user/update
      {
        "id": 1,
        "name": "John Doe",
        "age": 26,
        "email": "john.doe@example.com"
      }
      
    • DELETE /user/delete/1:无请求体
四、总结

通过本篇文章,你已经学会了如何创建服务类和控制器,并通过 RESTful API 提供对外服务。你还测试了基本的 API 接口,确保了服务类和控制器的正确性。这些知识点将帮助你构建一个完整的 Web 应用程序,能够处理客户端的各种请求并返回相应的结果。

下期预告

在下一期内容中,我们将深入探讨 MyBatis Plus 的分页与排序功能。这些功能在处理大量数据时非常实用,能够显著提高数据查询的效率和用户体验。通过配置分页插件和实现排序查询,你将学会如何在项目中高效地管理和展示数据。敬请期待!

通过本系列教程的学习,你将系统地掌握 MyBatis Plus 的各项功能,从基础到高级,从理论到实践,全面提升你的开发技能。希望你在学习过程中能够有所收获,并应用到实际项目中。让我们继续这段学习之旅吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug菌¹

你的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值