Springboot

db연결(USERS-CRUD) - select,insret,delet,update

열곰탱 2022. 9. 1. 21:57

기본세팅

 

github에서 import하기

 

 

 

import가 끝나서 실행을 해보면

서버는 잘 동작하는데 아무것도 시작이 안될것이다.

 

========================================================================

 

테이블 예제 추가

commit까지 까먹지말고 실행해줍니다.

 

ioc에 있는 모든 객체는 생성자의 주입을 통해 받을수있다.
final로 정의한 필드는 해당객체가 new될때 무조건 들어와야한다.
new될때 값이 있을려면 생성자가 만들어주어야한다.

 

@RequiredArgsConstructor
final이 붙어있는 애들만 생성자를 만들어준다.

 

위에 코드의 UsersDao는 

MapperScan을 통해 메모리에 떠있다.

MapperScan이 new를 해준다.

"site.metacoding.red.domain"  은 domain에 있는 모든 dao를 띄어준다.

 

domain에 있는 Users는 띄우지 않고 UsersDao만 띄우는 이유는

resources폴더안에 있는 users.xml에서

mapper에 UsersDao를 걸어 놓았기 때문이다.

 

=====================================================================

 

Select - findById(특정 id보기)

 

 

ID가 3까지 있기때문에 ID를 4로 매핑하면 아무것도 나오지 않는다.

 

 

Select - findAll(전체보기)

먼저 dao 생성

return type - List<Users>

함수이름 - findAll(), 파라미터()에 아무것도 없다.

 

users.xml  mapper에서 작성

 

resultType있는 이유

전체보기는 요청을 한 다음 전달 받고

다시 주어야 해서 return을 받아야하기때문

 

UsersController 작성

 

결과

DB에 있는 모든 데이터가 보인다.

 

Insert 

UsersDao 작성

 

mapper 작성

 

Controller 작성

 

INSERT 

postman을 사용하여 추가하였다.

 

 

결과확인

 

브라우저에서 전체보기로 확인해보니 

insert된것을 확인할수 있다.

 

 

UsersDao에서 insert 리턴타입을 Integer로 바꾸어준다.

 

Controller

HttpStatus상태코드를 적어준다.

리턴타입은 오브젝트이다. <?>

 

 

 

 

추가가 잘되었다.

 

=========================================================

 

RespDto

응답의 오브젝트

모든 응답은 RespDto로 할것이다.

 

Controller도 아래와 같이 바꾸어준다.

 

그럼 요청시 아래와 같이 나온다.

=======================================================

아래의 joinDto는 외부클라이언트와의 통신을 위한 Dto이다.

 

 

 

추가되었다.

==============

데이터베이스랑 통신하기 위한 dto가 Users이다.

Users가 데이터베이스와 통신하기 위한 엔티티이다.

 

 

 

delelte

 

dao 작성

 

 

users.xml작성

 

UsersController 작성

 

5번 테이블이 삭제되었다.

 

 

 

update -1

 

dao작성

 

xml작성

 

 

Controller 작성

 

updateDto

 

 

update결과

 

 

update -2

1. 전체수정

 

 

UserDao

 리팩토링하면 전체를 덮어쓰는 것 이기 때문에 Users 오브젝트를 넣는다.

 

xml 작성

 

Users수정

setter 삭제

 

UpdateDto

Controller 

 

실행결과

 

 

1. 패스워드만 수정

Users

 

UsersController

 

실행결과