[공통] JDBC
학습일 : 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) 쿼리에 의해 발생한 변경 사항을 적용하는 것.