728x90
반응형
# 특정 값을 Insert 시 PK 값을 자동으로 늘리면서 Insert 하는 API
# Controller
/**
* 시나리오
* 1. 만약 user_table 의 userid=1, username 이 김승현 인 경우
* 2. userid값이 하나씩 증가하며 입력한 내용을 Insert하는 API이다.
*/
@PostMapping("/apply_some_data_save")
public GeneralResponse<?> apply_some_data_save(@RequestParam(value = "userid") Long userid,
@RequestParam(value = "published") Boolean published,
@RequestParam(value = "user_description") String user_description,
@RequestParam(value = "username") String username) {
return userService.apply_some_data_save(userid, published, user_description, username);
}
# Service
public GeneralResponse<?> apply_some_data_save(Long userid, Boolean published, String user_description, String username) {
String optionalUserEntity = userRepository.apply_some_data_save_select(userid, username);
if (optionalUserEntity.isEmpty()) {
return GeneralResponse.builder()
.status(false)
.message("not found")
.data(null)
.build();
}
int user_id_plus = userRepository.user_id_plus1();
int user_id_plus1 = user_id_plus + 1;
int optionalUserEntityInsert = userRepository.apply_some_data_insert_rows(user_id_plus1, published, user_description, username);
System.out.println("스트링 값 조회: " + optionalUserEntityInsert);
return GeneralResponse.builder()
.status(true)
.message("get user_list")
.dataString(optionalUserEntityInsert)
.data(optionalUserEntityInsert)
.build();
}
# Repository
@Transactional
@Query(value = "select userid, username from user_table where userid = :userid and username = :username", nativeQuery = true)
String apply_some_data_save_select(@Param("userid") Long userid,
@Param("username") String username);
@Transactional
@Query(value = "select userid from user_table ORDER by userid DESC limit 1", nativeQuery = true)
int user_id_plus1();
@Transactional
@Modifying
@Query(value = "insert into user_table " +
"(userid, published, user_description, username) " +
"VALUES(:user_id_plus1, :published, :user_description, :username)", nativeQuery = true)
int apply_some_data_insert_rows(@Param("user_id_plus1") int user_id_plus1,
@Param("published") Boolean published,
@Param("user_description") String user_description,
@Param("username") String username);
- 끝 -
728x90
반응형
'🌱JAVA > 시나리오 개발' 카테고리의 다른 글
<SpringBoot> 게시판에 검색 기능 구현하기 (0) | 2023.04.28 |
---|---|
<SpringBoot> Swagger 적용해보기 (0) | 2023.04.27 |
<SpringBoot> insert2개 수행, 1개는 그냥 insert, 1개는 Admin 붙여서 insert (0) | 2023.04.27 |
<SpringBoot> 댓글이 있는 게시글 삭제 시 오류 메세지 출력 및 게시글 삭제하기 (0) | 2023.04.27 |
내 마음대로 API 개발하기 (0) | 2022.09.07 |