@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable int id){
User user = service.deleteById(id);
if(user == null){
throw new UserNotFoundExeception(String.format(id + " not pound"));
}
}
저번에 회원관리중 회원 선택 후 에 셀렉트 하는 것과 회원 전체 리스트를 json으로 받는 방법에 대해 서술하였다.
이번에는 회원 추가 즉 insert를 할 것이다.
아직 데이터베이스 즉 JPA를 하지 않아 메모리상의 데이터를 이용하려고 한다.
시작해보자
저번에 user라는 data객체와 service 그리고 controller를 만들었다.
private static int usersCount = 3;
public User save(User user){
if(user.getId()== null){
user.setId(++usersCount);
}
users.add(user);
return user;
}
우선 데이터가 3건이 기 떄문에
userCount라는 변수를 만들어 데이터가 추가 될때마다
++연산자로 한개씩 올려주려고 한다.
그 후 users를 insert(add)를 하려고 한다.
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user){
User savedUser = service.save(user);
URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}")
.buildAndExpand(savedUser.getId()).toUri();
return ResponseEntity.created(location).build();
}
import java.util.Date;
@Data
@AllArgsConstructor
public class User {
private Integer id;
private String name;
private Date joinDate;
}
우선 모델객체를 생성해주고 Lombok을 사용하려고 한다.
그 후 service 객체를 생성해보자
그 후 데이터 베이스를 사용하지 않기 떄문에
실행과 동시에 반영이 가능한 static 변수를 사용하여
List 타입을 만들고 id 1,2,3을 만들어서 기본 데이터 모델을 사용하려고 한다.
public class UserDAOService {
private static List<User> users = new ArrayList<>();
private static int usersCount = 3;
static {
users.add(new User(1,"Moon", new Date()));
users.add(new User(2,"Seok", new Date()));
users.add(new User(3,"Huyn", new Date()));
}
먼저 findAll 이라는 생성하여 위 데이터를 Rest api 방식을 사용하여 출력을 하여보자
public List<User> findAll(){
return users;
}
그 다음 컨트롤러를 사용해보자
@RestController
public class userController {
@Autowired
private UserDAOService service;
@GetMapping("/users")
public List<User> retrieveAllusers(){
return service.findAll();
}