7-1. JDBC 프로그래밍

zhyun·2020년 9월 4일
0

java

목록 보기
11/11

1. JDBC프로그래밍

  • Java DataBase Connectivity (자바랑 데이터베이스랑 연동)
  • ojdbc6.jar파일이 필요하다.

* 오라클 JDBC드라이버 다운로드 및 등록 방법


D:\C_Lib\ibatis -> ojdbc6

1) 프로젝트 클릭 -> alt+enger -> build path -> Libraries -> add external jars (정리안된 폴더)
-> D:\C_Lib\ibatis -> ojdbc6 가져오기

: 이렇게 하고 export 하면 터진다

2) 프로젝트 적합하게

프로젝트에 lib 폴더 만들고 D:\C_Lib\ibatis -> ojdbc6 복사해서 가져오기

: export하면 같이 export한다 (라이브러리로 등록되지 않은 상태)

경로복사 -> alt+enter -> add library -> user library -> NEW -> 'JDBC' 등록
ADD EXTERNAL JARS -> D:\A_TeachingMaterial\1.BasicJava\workspace\basic_java\lib

  • 네이버 카페(대덕인재개발원) -> eclipse jar 적용시키기 ppt 참고

2. JDBC 활용

* JDBC 활용 순서 (데이터베이스 처리)

* 클래스 오픈 순서

: MainClass( 클래스, 메인메서드) -> ViewClass(클래스) -> IService(인터페이스) -> IServiceImpl(클래스) -> IDao(인터페이스) -> IDaoImpl(클래스) -> MemberVo(클래스)

  • (1) JDBC드라이버 로딩
    : Class.forname("") -- 대소문자 구분해서 잘 써야함
  • (2) JDBC 접속
    : DriverManage.getConnection()
  • (3) 질의(SQL) -- 쿼리문 작성
    : Statement, PreparedStatement
  • (4) 질의결과반납
    : Result
  • (5) 종료(자원반납) -- 무조건 해야한다.
    : close()

2-1. 데이터베이스에 저장된 데이터

  • (1) 읽어(READ)오는 select쿼리executeQuery() 사용
  • (2) 생성(Create), 갱신(Update), 삭제(Delete)의 경우 executeUpdate() 사용
  • (3) 컬럼의 자료를 가져오는 방법 : rs.get자료형이름("컬럼명") , rs.get자료형이름(컬럼번호) 사용 단. 컬럼번호는 1부터 시작

2-2. DTO와 VO

  • (1) DTO (Data Transfer Object)
    : 데이터를 들고 있는 객체, 데이터를 오브젝트로 변환하는 객체

  • (2) VO (Value Object)
    : 값을 위해 쓰는 것, Read-Only 속성

  • DTO와 VO 모두 데이터를 저장하고 있다는 점이 있지만 프로젝트마다
    정의를 다르게 하고 있기 때문에 프로젝트의 정의에 따라 사용하는 것이 좋다.

2-3. Statement와 PreparedStatement

  • Statement 와 PreparedStatement의 가장 큰 차이점은 캐시(cache) 사용여부

  • 쿼리의 수행 (3단계)
    : 쿼리문장 분석 -> 컴파일 -> 실행 순서로 수행

  • Statement를 사용하면 매번 쿼리를 수행할 때마다 3단계를 거치게 되고,
    PreparedStatement를 처음 한번만 세단계를 거친 후 캐시에 담아 재사용
    -> DB에 훨씬 적은 부하를 주며, 성능도 좋다.

  • (1) Statement
    : Statement는 executeQuery()나 executeUpdate()를 실행하는 시점에
    매번 컴파일을 하기 때문에 성능상의 이슈가 있다.

  • (2) PreparedStatement
    : 컴파일이 미리 되어있는 녀석, 보통 조건절과 함께 사용되며 재사용

2-4. Singleton Pattern

  • 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리에 할당하고
    그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴

  • 생성자가 여러차례 호출되더라도 실제로 생성된 객체는 하나고
    최초 생성 이후에 호출된 생성자는 최초에 생성된 객체를 반환한다.

  • 생성자에 접근제어자 private로 선언해서 객체의 생성을 제한하고
    메서드를 통해서만 객체를 취득할 수 있다.

*사용하는 이유
: (1) 고정된 메모리의 영역을 얻으면서 한번의 new로 인스턴스를 사용하기 때문에
메모리 낭비를 방지할 수 있다.

: (2) 싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의
인스턴스들이 데이터를 공유하기 쉽다.

profile
HI :)

0개의 댓글