TIL 210606

박수빈·2021년 6월 6일
0

TIL

목록 보기
5/25
post-thumbnail

주말이라 하기 싫어서 몸부림 치는 중,,

SpringBoot

스프링 DB 접근 기술

스프링 JdbcTemplate

쿼리 결과를 RowMapper를 이용해 Member 객체로 받아서 리스트에 넣는다.

RowMapper

rowNum 만큼 람다식을 반복한다.
매 행에 대해 이름과 id를 받아서, Member 객체에 담아 리턴한다.
람다를 진짜 공부해야겠다..

JPA

쿼리 마저 개발자가 작성할 필요가 없다.
ORM: Object Relational Mapping. 객체와 관계형 디비 자동으로 매핑해 주는 것.

application.properties

원래 JPA는 테이블까지 알아서 만들어주는데, 우리는 이미 테이블이 있어서 spring.jpa.hibernate.ddl-auto=none을 사용하고, 만약 기능을 사용하고 싶다면 create로 하면됨.

Member.java

이 클래스가 Entity임을 알려주고, 각각 어노테이션을 달아준다.
id의 경우, Primary key니까, @Id를 달고, 값이 자동으로 디비에서 생성되기 때문에 @GeneratedValue(strategy = GenerationType.IDENTITY)라고 해준다.

다른 컬럼의 경우, @Column(name="컬럼명")으로 해준다. 객체의 필드값 이름과 컬럼명이 동일할 필요는 없는 것 같당!

JpaMemberRepository.java

EntityManager

  • JPA에 필수적인 요소!
  • Persistence Context로 엔티티를 관리한다.
  • entity를 영구히 저장하는 환경

save나 primary key 검색은 매우 단순하게 할 수 있다.

다른 컬럼으로 검색하거나, 전체를 가져오려면 JPQL이라는 것을 이용해야한다. JPQL은 결과로 행이 아니라 객체 자체를 리턴한다. 여기서는 Member 객체들이 리턴되고, 이를 리스트로 받는다.

MemberService.java

삽입, 수정을 위해서는 @Transactional 어노테이션이 필요하다. 클래스에 해도 되고, 특정 함수에 걸어도 됨.

SpringConfig.java

EntityManager 사용을 위해 만들고, 생성자에서 초기화 해준다.

MempryRepository에 JpaMemberRepository 연결!! (와 인터페이스 짱이다 진짜 인터페이스,,와,,자바,,와,,객체지향,,와,,,)

테스트 돌리면 잘 돌아간당!!



🐥 꼼지락

아침에 묵렴 사이렌 소리에 깨서 "불났나...? 대피해야되나...? 전쟁인가...?" 하다가 현충일인거 깨닫고ㅜㅜ 감사합니다,,, 하면서 다시 잤다.. 그러구 <마션>을 다 읽어버리고!! 낮잠도 자고 푹 쉬다 랩실에 갔는데. 그럼에도 불구하고 집중이 안됐다 ㅎㅎㅎㅎ
그냥 마션 영화나 볼걸 ㅋㅋㅋ 내일 인프런 자바 끝내버릴 수 있을까? 하지만 내일은 학원에 가는 날이지,, cs231n도 마저 듣고,, 이번주는 gdsc 자소서도 써야한다 븨지븨지~

profile
개발자가 되고 싶은 학부생의 꼼지락 기록

0개의 댓글