https://www.bilibili.com/video/BV16i4y1G7i2/
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,"删除成功"); } }
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("*"); } }
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; }
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); } }
本文使用 mdnice 排版