Vue+Spring Data JPA+MySQL 增查改删

    技术2024-06-13  80

    视频讲解:

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

    工程概述:

    前后端分离,进行简单增查改删(CRUD)

    前端使用VUE

    后端使用Spring Data JPA

    数据库使用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") @Log4j2 public 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; @Configuration public 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 @AllArgsConstructor public 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; @Service public 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); } }

     

    Processed: 0.025, SQL: 9