: JDBC에 대한 기초 개념 정리
- Java DataBase Connectivity
- 자바가 데이터베이스에 접속해서 SQL을 실행할 수 있도록 하는 표준
- java.sql 패키지와 javax.sql 패키지에 관련 인터페이스와 클래스가 존재함
: 데이터베이스와의 연결을 담당하는 객체
: SQL의 전송과 실행을 담당하는 객체
: 조회결과를 포함하고 있는 객체
오라클 jdbc driver를 로딩해서 드라이버 레지스트리에 등록시킨다.
드라이버 레지스트리에 등록된 오라클 jdbc driver를 이용해서
오라클 데이터베이스와 연결을 담당하는 Connection 객체를 획득한다.
Connection 객체의 메소드를 실행해서 SQL을 데이터베이스로 전송하고
실행시키는 PreparedStatement 객체를 획득한다.
PreparedStatement 객체의 executeUpdate() 메소드를 실행해서
SQL을 데이터베이스로 보내 실행시키고 결과값을 받는다.
데이터베이스 액세스 작업에 사용했던 모든 자원을 반납한다.
// 1. jdbc driver를 드라이버 레지스트리에 등록시키기
// * Class.forName("클래스 전체 경로") : 지정된 클래스를 메모리에 로딩함
Class.forName("oracle.jdbc.OracleDriver");
// 2. Connection 객체 획득하기
String url = "jdbc:oracle:thin:@localhost:1521:xe"; // 오라클의 jdbc url(DBMS마다 jdbc url은 상이함)
String username = "사용자이름";
String password = "비밀번호";
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println(connection);
// 3. PreparedStatement 객체 획득하기
// 참고) """ ...~~ """; : 텍스트블록, jdk15부터 지원
String sql = """
INSERT INTO SAMPLE_BOOKS
(BOOK_NO, BOOK_TITLE, BOOK_WRITER, BOOK_PRICE, BOOK_STOCK)
VALUES
(?,?,?,?,?)
""";
// String sql을 SqlDeveloper에게 전송하고 실행할 수 있는 변수 pstmt 선언
PreparedStatement pstmt = connection.prepareStatement(sql);
// sql의 ? 에 바인딩할 값을 순서대로 설정
pstmt.setInt(1, 10);
pstmt.setString(2, "자바의 정석");
pstmt.setString(3, "남궁성");
pstmt.setInt(4, 35000);
pstmt.setInt(5, 20);
// 4. SQL을 서버로 전송하고 실행시키기
int rowCount = pstmt.executeUpdate();
System.out.println(rowCount + "개의 행이 추가되었습니다.");
// 5. 사용했던 자원 반납하기
pstmt.close();
connection.close();
- 데이터(정보)를 표현하는 객체
- 보통은 특정 테이블의 한 행을 표현
- 테이블 당 하나의 VO 클래스가 필요함
- 데이터베이스 액세스를 담당하는 객체
- 보통은 특정 테이블마다 하나의 DAO 클래스가 필요
- DAO 클래스에는 특정 테이블에 대한 CRUD(추가, 조회, 변경, 삭제) 작업이 구현되어 있음