Hyunebee

JDBC 실습 본문

zerebase/데이터베이스

JDBC 실습

Hyunebee 2022. 5. 30. 23:49

데이터 베이스와 연결

 

Java app과 database 연결

 

필요요소

1. ip주소(도메인)

2. port 번호

3. 계정

4. 계정 비밀번호

5. 인스턴스

 

연결 순서

 1. 드라이버 로드 (JDBC Connetion jar파일 형태로 제공)

  보통 사용하는 database에서 배포하고 있다. 다운받아서 라이브러리에 등록

  Class.for()을 사용하여 로드한다.

Class.forName("org.mariadb.jdbc.Driver")

 

2.Database Connection을 생성

String url = jdbc:mariadb://접속할 ip주소:포트번호/접근할 DB인스턴스
Connction connection = DriverManager.getConnction(url,계정 이름,계정 비밀번호)

 

3.SQL을 위한 Statement 생성

String sql = 쿼리문
PreparedStatement ps = connetion.prepareStatement(sql)

 

  Statement vs PreparedStatement

  이 둘의 차이를 알아보기전에 SQL 엔진이 어떻게 쿼리를 처리하는지 알아야한다. 

statement 실행과정

  1. 구문 분석 및 정규화 단계 : 쿼리는 구문과 의미를 확인합니다. 쿼리에 사용된 참조 테이블과 컬럼이 존재하는지 확인한다.
  2. 컴파일 단계  : 이 단계에서는 select, from, where 등과 같은 쿼리에 사용된 키워드 를 기계가 이해할 수 있는 형식으로 변환 합니다. 질의를 해석하고 그에 상응하는 조치를 취하는 단계
  3. 쿼리 최적화 계획 : 이 단계에서는 쿼리가 실행될 수 있는 방법을 찾기 위한 의사결정 트리가 생성 쿼리를 실행할 수 있는 방법의 수와 각 쿼리를 실행하는 방법에 따른 비용을 알아냅니다 쿼리 실행에 가장 적합한 계획을 선택합니다.
  4. Cache : Query 최적화 계획에서 선택된 Best Plan이 Cache에 저장되어 다음에 같은 쿼리가 들어올 때마다 1,2,3과정을 다시 거치지 않아도 된다. 다음에 쿼리가 들어올 때 캐시에서 직접 확인하고 거기에서 선택 하여 실행
  5. 실행 단계 : 이 단계에서 제공된 쿼리가 실행되고 데이터가 ResultSet개체로 사용자에게 반환됩니다.

preparedstatment

  1. 구문 분석 및 정규화 단계
  2. 편집 단계
  3. 쿼리 최적화 계획
  4. 캐시(자리 표시자가 있는 컴파일된 쿼리는 캐시에 저장됩니다.)

 prepaerd의 경우에는 두번쨰 실행부터 캐시에서 미리 컴파일된 쿼리를 선택하고 자리 표시자(?)를 사용자가 제공한 데이터로 대체합니다.

 

그럼으로 Statement보다 PrepaerdStatement가 반복된 작업에 대해 성능이 높다.

 

4.SQL쿼리문장실행

ResultSet resultSet = preparedStatement.executeQuery(); 
이때 인자가있을시 setString(index, value)

5. JDBC 객체들 연결 해제

resultSet.close();
preparedStatement.close();
connection.close();

'zerebase > 데이터베이스' 카테고리의 다른 글

조인  (0) 2022.05.28
데이터 베이스 실습 (2)  (0) 2022.05.28
데이터 베이스 실습  (0) 2022.05.28
데이터 베이스 실습 - 인스턴스 생성과 원격연결  (0) 2022.05.28
정보시스템 구축단계  (0) 2022.05.27