视频讲解:

https://www.bilibili.com/video/BV16i4y1G7i2/

工程概述:

  1. 前后端分离,进行简单增查改删(CRUD)
  2. 前端使用VUE
  3. 后端使用Spring Data JPA
  4. 数据库使用MySQL

EmployeeController.java


package com.deepincoding.springdatajpamysqlcrud.controller;import com.deepincoding.springdatajpamysqlcrud.entity.Employee;import com.deepincoding.springdatajpamysqlcrud.model.BaseResponse;import com.deepincoding.springdatajpamysqlcrud.service.EmployeeService;import lombok.extern.log4j.Log4j2;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Page;import org.springframework.data.domain.Pageable;import org.springframework.data.domain.Sort;import org.springframework.data.web.PageableDefault;import org.springframework.web.bind.annotation.*;import java.util.Optional;@RestController@RequestMapping("/api/employee")@Log4j2public class EmployeeController extends BaseController {    @Autowired    private EmployeeService employeeService;    @PostMapping    public BaseResponse<String> save(@RequestBody Employee employee){          employeeService.save(employee);          return new BaseResponse<>(SUCCESS,"保存成功");    }    @GetMapping("/{id}")    public BaseResponse<Optional<Employee>> findById(@PathVariable Long id){        Optional<Employee> employee = employeeService.findById(id);        return new BaseResponse<>(SUCCESS,"获取成功",employee);    }    @GetMapping    public BaseResponse<Page<Employee>> findAll(@PageableDefault(sort = {"id"},direction = Sort.Direction.DESC ,size = 3) Pageable pageable){        log.info("pageable:{}",pageable.getPageNumber());        Page<Employee> employees = employeeService.findAll(pageable);        return new BaseResponse<>(SUCCESS,"获取成功",employees);    }    @PutMapping    public BaseResponse<String> update(@RequestBody Employee employee){        employeeService.save(employee);        return new BaseResponse<>(SUCCESS,"修改成功");    }    @DeleteMapping("/{id}")    public BaseResponse<String> delete(@PathVariable Long id){        employeeService.delete(id);        return new BaseResponse<>(SUCCESS,"删除成功");    }}

CorsConfig.java


package com.deepincoding.springdatajpamysqlcrud.config;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurationpublic class CorsConfig implements WebMvcConfigurer {    /**     * 跨域配置     * @param registry     */    @Override    public void addCorsMappings(CorsRegistry registry) {        registry.addMapping("/**")                .allowedOrigins("*")                .allowedMethods("*");    }}

Employee.java


package com.deepincoding.springdatajpamysqlcrud.entity;import com.deepincoding.springdatajpamysqlcrud.enums.Gender;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import javax.persistence.*;@Entity@Data@NoArgsConstructor@AllArgsConstructorpublic class Employee {    @Id    @GeneratedValue(strategy= GenerationType.AUTO)    private long id;    private String name;    @Enumerated(EnumType.STRING)    private Gender gender;    private Integer age;    private String introduce;}

EmployeeServiceImpl.java


package com.deepincoding.springdatajpamysqlcrud.service;import com.deepincoding.springdatajpamysqlcrud.entity.Employee;import com.deepincoding.springdatajpamysqlcrud.repositories.EmployeeRep;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Page;import org.springframework.stereotype.Service;import org.springframework.data.domain.Pageable;import java.util.Optional;@Servicepublic class EmployeeServiceImpl implements  EmployeeService{    @Autowired    private EmployeeRep employeeRep;    @Override    public void save(Employee employee) {        employeeRep.save(employee);    }    @Override    public Optional<Employee> findById(Long id) {        return employeeRep.findById(id);    }    @Override    public void update(Employee employee) {        employeeRep.save(employee);    }    @Override    public void delete(Long id) { employeeRep.deleteById(id); }    @Override    public Page<Employee> findAll(Pageable pageable) {        return employeeRep.findAll(pageable);    }}

本文使用 mdnice 排版