Life Developer
인생 개발자
Spring JDBC란?

JDBC란?
모든 자바의 데이터 액세스 기술의 근간이 된다.
최신 ORM기술도 내부적으로는 DB와의 연동을 위해 JDBC를 이용한다.
안정적이고 유연한 기술이지만, 로우 레벨 기술로 인식되고 있다. (중복된 코드가 반복적으로 사용)

Spring JDBC란?
기존 JDBC의 장점과 단순성을 그대로 유지하면서도 단점을 극복할수 있게 해주고, 간결한 형태의 API
사용법을 제공하며, JDBC API에서 지원되지 않는 편리한 기능을 제공한다.
반복적인 작업들을 대신 해줌.(내부적으로)
실행할 SQL이 뭔지 정의하고 그것이 실행될때 결과를 어떤 객체에 넘겨받을지만 지정하면 된다.
사용하려면 먼저 DB

Spring JDBC가 해주는 작업?
Connection과 관련된 모든 작업을 알아서 진행한다. (커넥션 열고닫기)
진행중에 예외가 발생했을때도 모든 Connection 객체를 닫아준다.
Statement 준비와 닫기 - SQL 정보가 담긴 Statement 또는 PreparedStatement를 생성하고
필요한 준비작업을 해준다.
Statement도 Connection과 마찬가지로 사용이 끝나고 나면 알아서 객체를 닫아준다.
Statement를 실행하는것도 해준다.
Statement실행 결과는 다양한 평태로 가져올수 있다.
ResultSet(쿼리를 실행한 결과가 담겨있는 객체) Loop 처리 - ResultSet의 실행결과가 한건 이상이면
ResultSet 루프를 만들어서 반복해준다.
Exception 처리와 반환 - 모든 예외는 Spring JDBC 예외 변환기가 처리한다.
체크 예외(Checked Exception:try-catch를 사용하여 개발자가 예외처리하는것)인 SQLException을
런타임 예외(Runtime Exception:반드시 try-catch를 사용하지 않아도 된다)인 DataAccessException타입으로 변환한다.
Tracsaction처리 - 개발자는 transaction과 관련된 모든 작업에 관해서 신경을 안써도된다.


JdbcTemplate 클래스
Spring JDBC가 제공하는 클래스 중 JdbcTemplate은 JDBC의 모든 기능을 최대한 활용할수
있는 유연성을 제공하는 클래스다.

제공 기능 - 실행, 조회, 배치
실행-insert나 update같이 데이터변경이 일어나는 작업
조회-select를 이용해 데이터를 조회하는 작업
배치-여러개의 쿼리를 한번에 수행해야하는 작업

JdbcTemplate 클래스생성
JdbcTemplate template = new JdbcTemplate(dataSource);

DataSource는 보통 Bean으로 등록해서 사용하므로 JdbcTemplate이 필요한 DAO클래스에서 DataSource Bean을
DI받아서 JdbcTemplate을 생성할때 인자로 넘겨주면 된다.

'Developer' 카테고리의 다른 글

자바스크립트 TDZ (Temporal Dead Zone) 임시사망지역  (0) 2020.09.04
javascript curry함수, 커링이란?  (0) 2020.08.05
DataSource  (0) 2020.08.03
프로젝트 아키텍쳐  (0) 2020.08.03
함수형 프로그래밍  (0) 2020.08.03
  Comments,     Trackbacks