-
[TIL] JDBC, JDBCTemplate, JPATIL(Today I Learned) 2022. 12. 27. 21:05
*20221227의 회고
오늘은 스프링 입문 강의에서 DB와 연결하는 부분에 대하여 학습하였다. 그 과정에서 배운 내용에 대해 정리해보려 한다.
- Java 에서 Long 타입은 DB 에서 bigint 타입이다.
- Java 는 기본적으로 DB랑 연동되려면 jdbc 드라이버가 꼭 있어야 함.
- JDBC : Java DataBase Connectivity. 자바에서 DB에 접속할 수 있도록 하는 자바 API
- Test 코드 작성 시 @Transactional 을 Test 에 달면,
- Test 를 실행할 때 transactional을 먼저 실행하고, 그 다음 DB의 데이터를 insert query 하고 다 넣은 다음에 test 가 끝나면 롤백을 해줌
- DB에 넣었던 데이터를 깔끔하게 반영되지 않게 하고 지워줌
- 테스트 시작 전에 트랜잭션을 시작하고 테스트 완료 후에 항상 롤백. 따라서 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않음
- @SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행한다 -> 시간오래걸림
- 스프링을 함께 띄워 테스트를 하기 보단, 스프링 없이 자바 코드 만으로 단위 테스트를 진행하는 편이 더 낫다.
- 스프링 통합 테스트도 물론 가끔은 시행하고 중요하기도 하다.
- JDBC Template : JDBC API 에서 반복코드를 대부분 제거해준다. 하지만 SQL 은 직접 작성해야 한다.
- JPA
- JDBC Template 에서 SQL 을 직접 작성해야 했는데, JPA 에서는 직접 SQL을 작성하지 않아도 된다.
- JPA 는 인터페이스 이다. 구현체는 Hibernate, Eclipse 등 회사별로 다양하게 존재한다.
- Spring 에서는 보통 Hibernate 사용.
- 자바 진영의 표준 인터페이스이다.
- JPA 를 쓰려면, @Transactional 에노테이션이 서비스 로직에 붙어있어야 함. 데이터를 저장하거나 변경할 땐 항상 @Transactional 에노테이션이 있어야 함.
내일은 얼마 남지 않은 입문 강의를 끝내버리고 좀 더 심화적인 내용을 공부하게 될 것이다. 요즘 다시 쉬운 개념부터 차근 차근 정리해 나가다 보니 공부가 다시 재밌어 진다. 매우 좋은 일이다! 팀 프로젝트 전까지 최대한 필요한 내용에 대해 숙지를 해놔서 재밌게 프로젝트에 임하고 싶다. 오늘의 회고 끝~!
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL] 오늘의 회고... (4) 2022.12.30 [TIL] AOP 에 대하여 (0) 2022.12.28 [TIL] final 키워드와 @Autowired 에노테이션 정리 (0) 2022.12.26 [TIL] Map을 List로 가져오기 (0) 2022.12.23 [TIL] 스프링 부트 자바 버전 변경으로 인한 오류 (2) 2022.12.22