前言
在上期内容中,我们详细讲解了如何创建实体类和 Mapper 接口,并配置 MyBatis Plus 的 Mapper 扫描。通过这些步骤,我们成功实现了数据库表结构到 Java 对象的映射,并能够进行基本的 CRUD 操作。这为我们的开发提供了强有力的数据访问层支持。
本期内容将进一步深入,重点介绍如何创建服务类和控制器。服务类负责处理业务逻辑,控制器负责处理 HTTP 请求并调用服务类的方法。通过这些步骤,你将学会如何构建一个完整的 Web 应用程序,并提供 RESTful API 接口供前端或其他服务调用。
一、创建服务类
服务类是应用程序的业务逻辑层。MyBatis Plus 提供了 IService
和 ServiceImpl
,简化了服务层的开发。
-
创建服务接口:
- 在
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> { }
- 在
-
实现服务接口:
- 在
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 { }
- 在
-
注解说明:
@Service
:标记该类为服务类,Spring 会自动扫描和注册。ServiceImpl
:MyBatis Plus 提供的通用 Service 实现类,简化了服务层的开发。
二、创建控制器
控制器是应用程序的表示层,用于处理客户端的 HTTP 请求。Spring Boot 提供了强大的注解支持,简化了控制器的开发。
-
创建控制器类:
- 在
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); } }
- 在
-
注解说明:
@RestController
:标记该类为 REST 控制器,Spring 会自动扫描和注册,并将返回值转换为 JSON。@RequestMapping
:定义控制器的根路径。@GetMapping
、@PostMapping
、@PutMapping
、@DeleteMapping
:分别对应 HTTP 的 GET、POST、PUT、DELETE 请求。
三、测试控制器
为了确保我们的服务类和控制器工作正常,我们需要进行一些基本的测试。
-
启动 Spring Boot 应用:
- 在 IDE 中运行
MybatisPlusDemoApplication
类,启动项目。
- 在 IDE 中运行
-
测试 RESTful API:
- 使用 Postman 或其他 API 测试工具,测试各个接口:
GET /user/list
:获取用户列表。POST /user/add
:添加新用户。PUT /user/update
:更新用户信息。DELETE /user/delete/{id}
:删除用户。
- 使用 Postman 或其他 API 测试工具,测试各个接口:
-
接口示例:
- 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:无请求体
- GET /user/list:
四、总结
通过本篇文章,你已经学会了如何创建服务类和控制器,并通过 RESTful API 提供对外服务。你还测试了基本的 API 接口,确保了服务类和控制器的正确性。这些知识点将帮助你构建一个完整的 Web 应用程序,能够处理客户端的各种请求并返回相应的结果。
下期预告
在下一期内容中,我们将深入探讨 MyBatis Plus 的分页与排序功能。这些功能在处理大量数据时非常实用,能够显著提高数据查询的效率和用户体验。通过配置分页插件和实现排序查询,你将学会如何在项目中高效地管理和展示数据。敬请期待!
通过本系列教程的学习,你将系统地掌握 MyBatis Plus 的各项功能,从基础到高级,从理论到实践,全面提升你的开发技能。希望你在学习过程中能够有所收获,并应用到实际项目中。让我们继续这段学习之旅吧!