Java/개념정리

[공통] JDBC

xowoony 2022. 10. 24. 09:23

학습일 : 2022. 10. 24


JDBC (java-Database Connector)


JDBC (java-Database Connector)

Java 언어를 이용하여  DBMS에 접속하고자 할 때 사용하는 JAVA 에서 제시하는 표준이다. 이에, 각 DBMS 개발사는 JDBC 표준에 맞게 각 Connector 의존성을 개발하여 배포하고 있다. (자주 사용하는 의존성 참고)

 

 

 

Connection (java.sql.Connection) : Java어플리케이션과 데이터베이스간의 연결을 제공하는 인터페이스이다. 직접 객체화하지 않고, 이가 구현하여야 하는 로직은 Class.forName 메서드를 활용하여 지정한 DBMS의 드라이버 (Driver)에 따라 DriverManager (java.sql.Drivermanager) 의 getconnection 메서드가 구현하여 반환한다.

     - setAutoCommit(boolean b) : 해당 Connection 객체를 통해 벌어지는 일들에 대해 자동으로 커밋(Commit) 할지의

                                                      여부를 지정한다. 별도의 조치가 없다면  true 로 지정되어 있다.

     - commit() : 해당 Connection 객체를 통해 발생한 DML 변경사항을 적용한다.

     - rollback() : 해당 Connection 객체를 통해 발생한 DML 변경사항을 취소한다.

 

 

PreparedStatement(java.sql.PreparedStatement) : DBMS에서 실행할 쿼리를 담고있는 인터페이스이다.

직접 객체화하지 않고, 위에서 반환된 객체인  Connection 객체의 prepareStatement 메서드를 통해 객체를 전달 받는다.

    - execute : 실행 결과가 ResultSet 으로 나타내어질 수 있는가의 여부

                      (대체적으로 SELECT 쿼리를 실행했는가)를 반환한다.

    - executeUpdate : 실행결과에 의해 영향을 받은 (삽입, 삭제, 수정 등) 레코드의 개수를 반환한다.

                                  단, SELECT 된 개수를 반환하지는 않는다.

    - executeQuery : 실행 결과를 ResultSet 타입의 객체로 담아 반환한다. 주로 SELECT 쿼리 실행시에 사용한다.

                                (기대하는 결과 값이 있을 때)

 

 

 

ResultSet(java.sql.ResultSet) : PreparedStatement 객체의 excuteQuery메서드가 반환하며, SELECT쿼리의 실행 결과를  Set의 형태로 가지고 있다. 반복 (Iteration)을 통해 각 레코드에 순차적으로 접근할 수 있다.

    비정적 메서드

        - next : 다음으로 가리킬 레코드가 존재하는가의 여부를 반환한다.     예) while (resultSet.next())

 

 

 

커밋(Commit) : DML(Data Manipulation Language, INSERT, SELECT, DELETE, UPDATE) 쿼리에 의해 발생한 변경 사항을 적용하는 것.