目录
下面以一个“新增员工—保存员工基本信息”为例,基于 Spring Boot + MyBatis 快速搭建,演示如何从前端接收员工对象,补全基础字段后写入数据库。
1. 项目依赖(pom.xml)
<!-- 文件名:pom.xml -->
<dependencies>
<!-- Spring Boot Web (内置 Tomcat + Spring MVC) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.1.0</version>
</dependency>
<!-- MyBatis Spring Boot Starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.3</version>
</dependency>
<!-- Lombok(可选,简化 Getter/Setter) -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
<scope>provided</scope>
</dependency>
</dependencies>
2. 员工实体类 Emp.java
// 文件名:src/main/java/com/example/demo/pojo/Emp.java
package com.example.demo.pojo;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
public class Emp {
private Long id;
private String username;
private String name;
private Integer gender;
private String phone;
private String job;
private Double salary;
private String image;
private LocalDate entryDate;
private Long deptId;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}
3. 接口层:EmpController.java
// 文件名:src/main/java/com/example/demo/controller/EmpController.java
package com.example.demo.controller;
import com.example.demo.pojo.Emp;
import com.example.demo.util.Result;
import com.example.demo.service.EmpService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/emp")
public class EmpController {
private static final Logger log = LoggerFactory.getLogger(EmpController.class);
@Resource
private EmpService empService;
@PostMapping
public Result save(@RequestBody Emp emp) {
log.info("请求参数 emp: {}", emp);
empService.save(emp);
return Result.success();
}
}
4. 业务层实现:EmpServiceImpl.java
// 文件名:src/main/java/com/example/demo/service/impl/EmpServiceImpl.java
package com.example.demo.service.impl;
import com.example.demo.mapper.EmpMapper;
import com.example.demo.pojo.Emp;
import com.example.demo.service.EmpService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
@Service
public class EmpServiceImpl implements EmpService {
@Resource
private EmpMapper empMapper;
@Override
public void save(Emp emp) {
// 1. 补全基础属性
emp.setCreateTime(LocalDateTime.now());
emp.setUpdateTime(LocalDateTime.now());
// 2. 保存员工基本信息
empMapper.insert(emp);
}
}
5. 持久层:EmpMapper.java
// 文件名:src/main/java/com/example/demo/mapper/EmpMapper.java
package com.example.demo.mapper;
import com.example.demo.pojo.Emp;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface EmpMapper {
@Insert("INSERT INTO emp(" +
"username, name, gender, phone, job, salary, image, entry_date, dept_id, create_time, update_time" +
") VALUES (" +
"#{username}, #{name}, #{gender}, #{phone}, #{job}, #{salary}, #{image}, #{entryDate}, #{deptId}, #{createTime}, #{updateTime}" +
")")
void insert(Emp emp);
}
6. 测试运行 & 接口返回
-
启动应用
mvn spring-boot:run
-
POST 请求示例
curl -X POST http://localhost:8080/emp \ -H "Content-Type: application/json" \ -d '{ "username":"zhangsan", "name":"张三", "gender":1, "phone":"13800001234", "job":"开发工程师", "salary":12000.0, "image":"/imgs/zhangsan.png", "entryDate":"2025-06-01", "deptId":2 }'
-
返回结果
{ "code": 0, "msg": "success", "data": null }
以上即为“新增员工—保存员工基本信息”完整示例,涵盖前后端交互、日志记录、基础属性补全和数据库持久化。