Programming/Spring, Spring Data JPA, Querydsl

Spring - JDBC

잇(IT) 2023. 5. 25. 10:15

* 프로젝트 생성 시 JAVA EE 8에는 Tomcat 9 버전을 사용해야 한다.

 

- JDBC 프로그램의 구조

1. 자바 프로그램과 데이터베이스를 네트워크 상에서 연결해 데이터를 교환하는 프로그램으로 관련 API는 java.sql 패키지와 java.sql 패키지를 이용한다.

 

- JDBC 프로그램 작성 순서

1. 네트워크를 통해서 데이터베이스와 연결을 맺는 단계

2. 데이터베이스에 보낼 SQL을 작성하고 전송하는 단계

3. 필요하다면 데이터베이스가 보낸 결과를 받아서 처리하는 단계

4. 데이터베이스와 연결을 종료하는 단계

 

- JDBC 프로그래밍에서 가장 중요한 사실 중 하나는 'Connection은 반드시 close()해야 한다'

 

- java.sql.PreparedStatement

1. JDBC에서 SQL을 데이터베이스로 보내기 위해서는 PreparedStatement 타입을 이용한다.

   1. setXXX() : setInt(), setString(), setDate()와 같이 다양한 타입에 맞게 데이터를 세팅할 수 있다.

   2. executeUpdate() : DML(insert/update/delete)을 실행하고 결과를 int 타입으로 반환한다. 결과는 '몇 개의 행(row)이 영향을 받았는가'이다.

   3. excuteQuery() : 말 그대로 쿼리(select)를 실행할 때 사용한다. executeQuery() 경우에는 ResultSet이라는 리턴 타입을 이요한다.

2. Statement 역시 마지막에는 Connection과 마찬가지로 close()를 통해서 종료해 주어야만 데이터베이스 내부에서도 메모리와 같이 사용했던 자원들이 즉각적으로 정리된다.

 

- java.sql.ResultSet

1. 쿼리(select)를 실행했을 때, 데이터베이스에서 반환하는 데이터를 읽어 들이기 위해서는 특별하게 ResultSet이라는 인터페이스를 이용한다. ResultSet은 자바코드에서 데이터를 읽어 들이기 때문에 getInt(), getString() 등의 메소드를 이용해서 필요한 타입으로 데이터를 읽어 들인다.

2. ResultSet에는 next()라는 특별한 메소드가 존재한다. ResultSet은 데이터를 순차적으로 읽는 방식으로 구성되기 때문에 next()를 이용해 다음 행(row)의 데이터를읽을 수 있도록 이동하는 작업이 필요하다.

3. ResultSet 역시 네트워크를 통해서 데이터를 읽어 들이기 떄문에 작업이 끝난 후에는 반드시 close()를 해 주어야만 데이터베이스에서도 즉각적으로 자원을 회수한다.

 

728x90

'Programming > Spring, Spring Data JPA, Querydsl' 카테고리의 다른 글

Spring - 정리 (2023.05.26.FRI)  (0) 2023.05.26
Spring - Cookie (쿠키)  (0) 2023.05.26
Spring - TO DO (1)  (0) 2023.05.25
Spring - Lombok 라이브러리  (0) 2023.05.25
Spring - war 파일 export  (0) 2023.05.02