스프링부트 JPA 연습

2018. 3. 7. 17:18카테고리 없음

스프링부트 JPA 연습




이왕 스프링부트를 하는 김에, 일반적으로 많이 쓰이는 mybatis 대신에 JPA를 써보기로 합니다.

구글 검색을 통해 공부해봅니다.


#1. Member 엔티티 클래스 생성

@Entity, @Id, @GeneratedValue, @Column 등의 어노테이션이 에러를 내고 있습니다.





#2. bulid.gradle 에 JPA 관련 설정을 합니다.

runtime("com.h2database:h2") 는 Embedded h2database를 사용하겠다는 설정입니다.

h2DB가 뭔지 잘 모르지만 일단 사용해보기로 합니다.




#3. Member 클래스 수정

javax.persistence 패키지가 많이 포함되었습니다.

@Id 에는 (name) 이 들어가면 안되나 봅니다.

따옴표도 ' 를 쓴 곳이 있는데, javascript를 쓰는게 아니니 " 로 변경했습니다.

일단 컴파일 에러는 모두 제거했습니다.

대충 보니, 키는 memberId, 컬럼은 memberName, 키는 자동생성, 널 허용안함 등이 보이네요.




#4. Repository 생성

Member 클래스를 다룰 MemberRepository Interface를 생성합니다.

CrudRepository를 상속받았고, 느낌 상 CRUD는 자동으로 될 듯 합니다.

실제로 CrudRepository 의 outline을 보니, save, findOne, exists, findAll, count, delete, deleteAll 등의 메쏘드가 존재합니다.

save 가 insert 와 update를 수행할 것으로 생각됩니다.




#5. 스프링 부트 RUN

특별한 이상이 없는지, 스프링부트 어플리케이션을 실행시켜봅니다.

JPA만 추가했는데 hibernate 관련 로그가 올라오는 걸로 보아 둘 사이에 깊은 연관이 있나 봅니다.






#6. CRUD를 처리할 Controller 생성

insert/update/delete/listAll 을 매핑합니다.

insert 와 update 는 똑같은데.. 내부에 코드를 추가해서 구분하는 service 코드를 만드는 게 좋을 듯 합니다.

단순히 되는 걸 보자고 하는 코드이므로, 스프링부트 애플리케이션을 restart 해봅니다.





#7. 브라우저로 확인


sooji 추가


리스트 확인, 기존에 iu 가 2개 있음


memberId=3 삭제


memberId=5를 yuna로 변경


리스특 확인 : 5번 yuna 만 남음

4번 iu는 어디갔지 ㅠㅠ ( 뭔가 실수 한 듯 )