├── src └── main │ ├── resources │ ├── banner.txt │ └── application.properties │ └── java │ └── ems │ ├── repository │ └── EmployeeRepository.java │ ├── EmployeedaoApplication.java │ ├── model │ └── EmployeeModel.java │ ├── exception │ └── ResourceNotFoundException.java │ ├── entity │ └── EmployeeEntity.java │ ├── service │ └── EmployeeService.java │ └── controller │ └── EmployeeController.java └── pom.xml /src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | _ ___ _ _ ___ _ _ ___ _ _ 2 | /_\ | _ )| || ||_ _|| | /_\ / __|| || | 3 | / _ \ | _ \| __ | | | | |__ / _ \ \__ \| __ | 4 | /_/ \_\|___/|_||_||___||____|/_/ \_\|___/|_||_| 5 | -------------------------------------------------------------------------------- /src/main/java/ems/repository/EmployeeRepository.java: -------------------------------------------------------------------------------- 1 | package ems.repository; 2 | 3 | 4 | import ems.entity.EmployeeEntity; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface EmployeeRepository extends JpaRepository { 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=employeedao 2 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 3 | spring.jpa.hibernate.ddl-auto=update 4 | spring.datasource.url=jdbc:postgresql://localhost:5432/employeemanagesys 5 | spring.datasource.username=postgres 6 | spring.datasource.password=postgres 7 | spring.jpa.show-sql=true 8 | -------------------------------------------------------------------------------- /src/main/java/ems/EmployeedaoApplication.java: -------------------------------------------------------------------------------- 1 | package ems; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class EmployeedaoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(EmployeedaoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/ems/model/EmployeeModel.java: -------------------------------------------------------------------------------- 1 | package ems.model; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class EmployeeModel { 12 | 13 | 14 | private Long id; 15 | private String address; 16 | private String firstName; 17 | private String lastName; 18 | private String email_id; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/ems/exception/ResourceNotFoundException.java: -------------------------------------------------------------------------------- 1 | package ems.exception; 2 | 3 | 4 | import org.springframework.http.HttpStatus; 5 | import org.springframework.web.bind.annotation.ResponseStatus; 6 | 7 | @ResponseStatus(value = HttpStatus.NOT_FOUND) 8 | public class ResourceNotFoundException extends Exception{ 9 | private static final Long serialVersionUID = 1L; 10 | public ResourceNotFoundException(String message){ 11 | super(message); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/ems/entity/EmployeeEntity.java: -------------------------------------------------------------------------------- 1 | package ems.entity; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.NonNull; 8 | 9 | 10 | import javax.persistence.*; 11 | 12 | @Data 13 | @Entity 14 | @Table(name = "employee") 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class EmployeeEntity { 18 | @Id 19 | @GeneratedValue(strategy = GenerationType.IDENTITY) 20 | private Long id; 21 | @Column(name="firstname") 22 | private String firstName; 23 | @Column(name="lastname") 24 | private String lastName; 25 | 26 | @Column 27 | private String email_id; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/ems/service/EmployeeService.java: -------------------------------------------------------------------------------- 1 | //package emsemployeemanage.employeedao.service; 2 | // 3 | //import emsemployeemanage.employeedao.entity.Employee; 4 | //import emsemployeemanage.employeedao.repository.EmployeeRepository; 5 | //import org.springframework.stereotype.Service; 6 | // 7 | //import java.util.List; 8 | // 9 | //@Service 10 | //public class EmployeeService { 11 | // 12 | // EmployeeRepository employeeRepository; 13 | // 14 | // 15 | // public List getAllEmployees() { 16 | // 17 | // return employeeRepository.findAll(); 18 | // 19 | // } 20 | // 21 | // public Employee saveBooks(Employee employee) { 22 | // 23 | // return employeeRepository.save(employee); 24 | // 25 | // } 26 | // 27 | // public Employee updateBooks(Employee employee,Long id) { 28 | // Long employee1= employeeRepository.findById(id).orElseThrow(()->new RuntimeException()).getId(); 29 | // 30 | // return employeeRepository.save(employee); 31 | // 32 | // } 33 | // 34 | // 35 | //} 36 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.7.7 9 | 10 | 11 | emsemployeemanage 12 | employee-dao 13 | 0.0.1-SNAPSHOT 14 | employeedao 15 | Demo project for Spring Boot Employee Management 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 1.8 31 | 32 | 33 | 34 | org.springframework.boot 35 | spring-boot-starter-data-jpa 36 | 37 | 38 | org.springframework.boot 39 | spring-boot-starter-web 40 | 41 | 42 | 43 | org.postgresql 44 | postgresql 45 | runtime 46 | 47 | 48 | org.projectlombok 49 | lombok 50 | true 51 | 52 | 53 | org.springframework.boot 54 | spring-boot-starter-test 55 | test 56 | 57 | 58 | 59 | 60 | 61 | 62 | org.springframework.boot 63 | spring-boot-maven-plugin 64 | 65 | 66 | 67 | org.projectlombok 68 | lombok 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /src/main/java/ems/controller/EmployeeController.java: -------------------------------------------------------------------------------- 1 | package ems.controller; 2 | 3 | import ems.entity.EmployeeEntity; 4 | import ems.exception.ResourceNotFoundException; 5 | import ems.model.EmployeeModel; 6 | import ems.repository.EmployeeRepository; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.http.MediaType; 9 | import org.springframework.http.ResponseEntity; 10 | import org.springframework.web.bind.annotation.*; 11 | 12 | import java.util.List; 13 | 14 | @RestController 15 | @RequestMapping("/api/v1") 16 | public class EmployeeController { 17 | 18 | @Autowired 19 | EmployeeRepository employeeRepository; 20 | 21 | @GetMapping("/getallemployees") 22 | private List getAllEmployees() { 23 | return employeeRepository.findAll(); 24 | } 25 | 26 | @GetMapping("/get-all-employees-by-id/{id}") 27 | private ResponseEntity getAllEmployeeById(@PathVariable(value = "id") Long empId) throws ResourceNotFoundException { 28 | EmployeeEntity employee = employeeRepository.findById(empId).orElseThrow(() -> new ResourceNotFoundException("employee not found for id : " + empId)); 29 | return ResponseEntity.ok().body(employee); 30 | } 31 | 32 | @PostMapping(path = "/create-employee", produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE}, 33 | consumes = {MediaType.APPLICATION_JSON_VALUE,MediaType.APPLICATION_XML_VALUE}) 34 | private EmployeeEntity createEmployee(@RequestBody EmployeeModel emp) { 35 | EmployeeEntity employee = new EmployeeEntity(); 36 | employee.setFirstName(emp.getFirstName()); 37 | employee.setLastName(emp.getFirstName()); 38 | employee.setEmail_id(emp.getEmail_id()); 39 | 40 | return employeeRepository.save(employee); 41 | } 42 | 43 | 44 | // @PostMapping("/create-employees") 45 | // private void createEmployees(@RequestBody List empList) { 46 | // 47 | // employeeRepository.saveAll(empList); 48 | // 49 | // } 50 | 51 | @PutMapping("/update-employee/{id}") 52 | private EmployeeEntity updateEmployees(@PathVariable(value = "id") Long id, EmployeeModel employeeDetails) throws ResourceNotFoundException { 53 | EmployeeEntity fetchedEmployee = employeeRepository.findById(id).orElseThrow(() -> new ResourceNotFoundException("employee not found for id : " + id)); 54 | fetchedEmployee.setFirstName(employeeDetails.getFirstName()); 55 | fetchedEmployee.setLastName(employeeDetails.getLastName()); 56 | // fetchedEmployee.setEmail(employeeDetails.getEmail()); 57 | return employeeRepository.save(fetchedEmployee); 58 | 59 | 60 | } 61 | 62 | // @PutMapping 63 | // public void updateEmployee(@PathVariable Long id,EmployeeModel employeeModel){ 64 | // EmployeeEntity employee= employeeRepository.findById(id).orElseThrow(()->new RuntimeException("s")); 65 | // employee.setId(employeeModel.getId()); 66 | // employee.setEmail_id(); 67 | // 68 | // } 69 | 70 | @DeleteMapping("/delete-employee/{id}") 71 | private EmployeeEntity deleteEmployees(@PathVariable(value = "id") Long id) throws ResourceNotFoundException { 72 | EmployeeEntity fetchedEmployee = employeeRepository.findById(id).orElseThrow(() -> new ResourceNotFoundException("employee not found for id : " + id)); 73 | 74 | employeeRepository.delete(fetchedEmployee); 75 | return ResponseEntity.ok(fetchedEmployee).getBody(); 76 | } 77 | 78 | 79 | } 80 | --------------------------------------------------------------------------------