implementation 'org.apache.tomcat:tomcat-jdbc:10.1.25'
커넥션 풀
HikariCp
javax.sql.DataSource
spring-context
lombok
spring-test : 의존성을 주입받은 상태로 test실현 가능(스프링부트에는 기본 탑재되어 있음)


예시) 스키마 생성




예시) DB 연결 설정

예시) 커넥션 풀 설정

예시) db연결은 메모리를 소비하므로 다 쓰면 메모리를 해재 해주어야 함


ㄴ 스프링 컨테이너가 소멸될 때 자원도 같이 해재해주도록 설정
예시) db연결 테스트



예시) 쿼리 수행


예시) db에서 데이터 가져오기


ㄴ 로우매퍼가 db 데이터한개씩 꺼내옴?
ㄴ 리졸트셋이 멤버객체에 할당??

ㄴ 람다식 쓰라는 소리

ㄴ 람다식 사용한ver
예시) db에서 단일데이터 가져오기

예시) 전체데이터나 단일데이터 조회할 때 겹치는 부분이 많으니 따로 빼자

ㄴ 매퍼 부분이 겹침

ㄴ 따로 뺌

ㄴ 이렇게 짧게 쓸 수 있음

ㄴ 애도 이렇게 짧게 쓸 수 있음
예시) 데이터가 없는 경우

ㄴ 없는 데이터 조회해서 예외발생함

ㄴ try~catch 적용하자
예시) 데이터 갯수 count

예시) INSERT 쿼리수행





Interface Connection
https://docs.oracle.com/en/java/javase/17/docs/api/java.sql/java/sql/Connection.html

예시) Insert 쿼리

ㄴ 넘겨주는 값이 커넥션 객체...?

ㄴ new PreparedStatementCreator() : 가 회색인 이유
-> 람다식을 사용하라는 의미

ㄴ 람다식 적용한ver
Class Number(추상클래스)
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Number.html


ㄴ 기본형으로 반환하는 메서드
예시) INSERT 쿼리 실행 시 KeyHolder를 이용해서 자동 생성 키값 구하기


ㄴ 보통 number형태로 반환하는 경우는 숫자를 가져오는데 long인지 int인지를 모르니까 number로 반환
ㄴ number : 추상클래스, 인티저...등의 가장 상위 클래스
Connection
- setAutoCommit(false) (공통기능)
↓
SQL 1...
SQL 2... (핵심기능)
SQL 3...
↓
Connection (공통기능)
commit();

예시) 자동 롤백

Spring Data Core 3.3.1 API
https://docs.spring.io/spring-data/commons/docs/current/api/index.html
Interface CrudRepository<T,ID> (T : 엔티티 자료형, ID : 기본키의 자료형 )
https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/CrudRepository.html
- count, delete, find, save

ㄴ 이터러블 : 콜렉션프레임웤(셋, 리스트...)

ㄴ save : 기본키가 있으면 수정 없으면 추가
예시)



ㄴ 기본적으로 컨테이너 관리객체
ㄴ 의존성 주입만 해주면 된다???

ㄴ 인터페이스만 있어도 프록시형태의 구현체가 자동 생성된다?? 뭐가 그렇게 해주는데...ㅠ