Spring Boot
Spring Boot
Use Spring Initializr (https://start.spring.io/) to generate a new Spring Boot project with the
following dependencies:
- Spring Web
- `application.properties`
```properties
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
- `Employee.java`
```java
package com.example.employeemanagement.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
```
- `EmployeeRepository.java`
```java
package com.example.employeemanagement.repository;
import com.example.employeemanagement.model.Employee;
import org.springframework.data.jpa.repository.JpaRepository;
- `EmployeeService.java`
```java
package com.example.employeemanagement.se
@Service
@Autowired
return employeeRepository.findAll();
return employeeRepository.findById(id);
}
public Employee saveEmployee(Employee employee) {
return employeeRepository.save(employee);
employeeRepository.deleteById(id);
- `EmployeeController.java`
```java
package com.example.employeemanagement.controller;
import com.example.employeemanagement.model.Employee;
import com.example.employeemanagement.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping("/api/employees")
@Autowired
@GetMapping
return employeeService.getAllEmployees();
@GetMapping("/{id}")
ResponseEntity.notFound().build());
@PostMapping
return employeeService.saveEmployee(employee);
}
@PutMapping("/{id}")
if (employeeOptional.isPresent()) {
employee.setName(employeeDetails.getName());
employee.setRole(employeeDetails.getRole());
return ResponseEntity.ok(employeeService.saveEmployee(employee));
} else {
return ResponseEntity.notFound().build();
@DeleteMapping("/{id}")
employeeService.deleteEmployee(id);
return ResponseEntity.noContent().build();
```
`EmployeeManagementApplication` class.
```bash
cd employee-management
```
```bash
```
- `src/services/EmployeeService.js`
```javascript
class EmployeeService {
getEmployees() {
return axios.get(EMPLOYEE_API_BASE_URL);
createEmployee(employee) {
getEmployeeById(employeeId) {
return axios.get(`${EMPLOYEE_API_BASE_URL}/${employeeId}`);
updateEmployee(employee, employeeId) {
deleteEmployee(employeeId) {
return axios.delete(`${EMPLOYEE_API_BASE_URL}/${employeeId}`);
}
export default new EmployeeService();
```
- `src/components/EmployeeListComponent.js`
```javascript
useEffect(() => {
EmployeeService.getEmployees().then((res) => {
setEmployees(res.data);
});
}, []);
return (
<div>
<div className="row">
<thead>
<tr>
<th>Employee Name</th>
<th>Employee Role</th>
</tr>
</thead>
<tbody>
{employees.map((employee) => (
<tr key={employee.id}>
<td>{employee.name}</td>
<td>{employee.role}</td>
</tr>
))}
</tbody>
</table>
</div>
</div>
);
};
`src/components/CreateEmployeeComponent.js`,
`src/components/UpdateEmployeeComponent.js`, and
```javascript
'./components/CreateEmployeeComponent';
'./components/UpdateEmployeeComponent';
function App() {
return (
<div>
<Router>
<div className="container">
<Switch>
component={EmployeeListComponent}></Route>
<Route path="/employees"
component={EmployeeListComponent}></Route>
<Route path="/add-employee"
component={CreateEmployeeComponent}></Route>
<Route path="/edit-employee/:id"
component={UpdateEmployeeComponent}></Route>
<Route path="/view-employee/:id"
component={ViewEmployeeComponent}></Route>
</Switch>
</div>
</Router>
</div>
);
```
```bash
npm start