6.15
SpringBoot实体类、分页配置与基础CRUD测试
一、教学目标
-
根据数据库数据表结构,创建SpringBoot对应实体类,结合Lombok简化代码。
-
完成MyBatis-Plus分页插件配置,实现数据库分页查询功能。
-
编写Mapper、Service、Controller三层代码,完成基础CRUD接口开发。
-
通过浏览器测试接口,验证数据查询、新增、分页功能正常生效。
二、核心知识点
1. 实体类与Lombok注解:Lombok可通过注解自动生成实体类get/set方法、无参/有参构造、toString方法,消除冗余代码;配合MyBatis-Plus注解可实现实体类与数据库表映射。
2. MyBatis-Plus插件配置:通过配置类注册分页插件,解决SpringBoot项目分页查询失效问题,适配不同数据库分页语法。
三层架构开发:Mapper层负责数据库交互、Service层处理业务逻辑、Controller层接收前端请求、响应数据,职责分层清晰,符合项目开发规范。
常用MP内置方法:MyBatis-Plus封装了selectById、list、page、save等通用CRUD方法,无需手写SQL即可完成基础数据库操作。
三、操作步骤
1. 数据库表准备
基于前期创建的weitoutiao数据库,新建业务数据表(以user用户表为例),包含基础字段:id、用户名、密码、手机号、创建时间、逻辑删除标识deleted,适配yml配置中的逻辑删除规则。
2. 创建项目分层结构
在com.weitoutiao包下,完善项目基础包结构,规范分层开发:
-
entity:存放数据库对应实体类
-
mapper:存放数据库操作接口
-
service:存放业务逻辑接口及实现类
-
config:存放项目配置类
-
controller:存放请求控制类
3. 编写数据库实体类(entity)
在entity包下创建User实体类,使用Lombok和MyBatis-Plus注解完成表和字段映射,自动适配驼峰命名、主键自增、逻辑删除配置。
package com.weitoutiao.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import java.util.Date;
// 自动生成get、set、toString、无参构造
@Data
public class User {
// 主键自增
@TableId(type = IdType.AUTO)
private Long id;
// 用户名
private String username;
// 密码
private String password;
// 手机号
private String phone;
// 创建时间
private Date createTime;
// 逻辑删除字段,对应yml配置
@TableLogic
private Integer deleted;
}
4. 配置MyBatis-Plus分页插件(config)
在config包下创建MyBatisPlusConfig配置类,注册分页插件,开启分页功能,适配MySQL数据库。
package com.weitoutiao.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisPlusConfig {
// 注册分页插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 指定数据库类型为MySQL
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
5. 编写Mapper层接口
在mapper包下创建UserMapper接口,继承BaseMapper,自动继承MP所有通用CRUD方法,无需手动编写SQL。
package com.weitoutiao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.weitoutiao.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
// 继承BaseMapper后,自带新增、删除、修改、查询、分页等方法
}
6. 编写Service业务层
先创建UserService业务接口,再创建Impl实现类,继承MP通用业务接口,封装业务操作方法。
Service接口:
package com.weitoutiao.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.weitoutiao.entity.User;
public interface UserService extends IService<User> {
}
Service实现类:
package com.weitoutiao.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.weitoutiao.entity.User;
import com.weitoutiao.mapper.UserMapper;
import com.weitoutiao.service.UserService;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
7. 编写Controller接口层
在controller包下创建UserController,注入业务层对象,编写查询、分页查询接口,用于前端访问测试。
package com.weitoutiao.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.weitoutiao.entity.User;
import com.weitoutiao.service.UserService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
// 注入业务层
@Resource
private UserService userService;
// 查询所有用户
@GetMapping("/list")
public List<User> getUserList(){
return userService.list();
}
// 分页查询 用户
@GetMapping("/page/{current}/{size}")
public IPage<User> getUserPage(@PathVariable Long current, @PathVariable Long size){
// current:当前页,size:每页条数
Page<User> page = new Page<>(current,size);
return userService.page(page);
}
}
8. 项目启动与接口测试
-
启动SpringBoot主程序,确保项目无报错、端口8080正常监听;
-
浏览器访问全员查询接口: http://localhost:8080/user/list ,可查询数据库所有用户数据;
-
浏览器访问分页接口: http://localhost:8080/user/page/1/5 ,查询第一页、每页5条数据;
-
控制台可打印SQL执行日志,验证MyBatis-Plus配置、分页插件、字段映射全部生效。
四、实训总结
本次实训完成了SpringBoot项目完整三层架构搭建,熟练使用Lombok简化实体类开发,掌握MyBatis-Plus分页插件配置方法。无需手写基础SQL,通过MP内置方法快速实现数据查询、分页功能,大幅简化后端开发流程,同时规范了项目分层开发思想,为后续复杂业务接口开发奠定基础。

浙公网安备 33010602011771号