[JDBC][국비교육] Day 57

Ga02·2023년 3월 22일

국비교육

목록 보기
54/82

✔ 이클립스 자바ver.이랑 Oracle DB 잘 돌아가는지 확인할 것!
모듈 인포 자바 빼기
라이브러리 모듈패스에 JRE 들어있는지 확인하기

🔍 JDBC, Java DataBase Connectivity

자바 프로그램에서 데이터베이스에 접속하고 관리할 수 있게 해주는 드라이버(API)

Java	➡접속➡		Oracle DB
Java	⬅리턴⬅ 	Oracle DB
클래스 데이터를 보내서 SQL을 수행한 결과 리턴

Java(DB Client)로 DB(Server)를 이용하게 해주는 개발코드가 있음 👉🏻 Oracle에서 제공하는 Java에 연결할 수 있는 코드
우리는 Oracle 11g R2 EX버전을 사용하므로 이에 맞는 JDBC 버전을 사용할 것

  • 자바로 작성된 프로그램으로 DB와 관련된 작업을 수행할 수 있도록 제공되는 기능(클래스, 인터페이스)들을 모아놓은 라이브러리

➰ OJDBC, Oracle JDBC

오라클 데이터베이스를 자바코드로 관리할 수 있도록 해주는 JDBC

OJBDC버전 	요구 JDK버전 	DB버전
OJDBC6 		JDK 6이상 		11g R2 	👉🏻 우리가 사용할 버전
OJDBC5 		JDK 5이상
OJDBC14 	JDK 1.4이상

➰ OJDBC 라이브러리 파일 위치

오라클 11gR2 XE를 설치할 때 같이 포함되어 있음

  • C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib에 있는 ojdbc6.jar파일 사용

    C드라이브 - oraclexe - 쭉 들어가서 product - jdbc - ojdbc6.jar
    찾기 힘드니까 복사해서 D드라이브-LIB 폴더에 붙여넣기

➰ 자바 프로젝트에 OJDBC 라이브러리 설치/적용하기

방법1. Dynamic Web Project에서 ojdbc6.jar 파일을 복사하여 추가

  • \src\main\webapp\WEB-INF\lib\ 폴더에 파일을 복사하여 붙여넣기
  • 프로젝트에 자동으로 라이브러리가 연결됨

방법2. 직접 라이브러리 파일을 선택하여 추가하기

  • 프로젝트 우클릭 - Build Path - Configure Build Path.. 클릭
  • Libreries 탭 선택
  • 오른쪽 버튼 중에서 ADD JARs 버튼 클릭
  • 라이브러리 파일 찾아서 선택, Apply
    (ADD JARs 대신 ADD Libraries 버튼을 클릭하고 Web App Libraries를 추가해도 됨)
    (Web App Libraries를 사용할 때는 .jar 파일이 ~\WEB-INF\lib\에 있어야 함)

Dynamic Web Project로 만들기
타겟 런 타임 지금 어차피 서버 사용 안할거라 굳이 필요 없음

확인하기

root는 도메인할 때

lib에 복붙하기

여기서도 확인 가능


바이트 코드로 되어있어서 new()를 하지 못함
자바 API에 class Class가 있음 -> class 파일을 관리
이 class의 static 메소드를 이용해


DB 연결


SQL 접속 속성에 들어가면 나와있음



getString()으로 할 때

getInt()로 할 때 차이점 확인하기


🔍 execute 메소드의 종류 3가지

SQL 구문을 수행하는 API 메소드

  • SQL 구문을 문자열로 적용하고 DB에 전달
  • DB에서는 SQL 구문을 받아서 수행
  • 메소드의 유형에 따라서 반환 타입(값)이 다름 👉🏻 왜, 뭐가 다른지 구분하는 것이 중요
  • execute 메소드 종류에 따라 적절히 수행 가능한 SQL구문의 종류가 다름

➰ ResultSet excuteQuery (String sql)

SELECT 구문을 수행할 때 사용

  • ResultSet타입은 조회 결과의 모든 행을 참조할 수 있는 구조가 들어있음
  • ResultSet객체.next() 메소드를 이용하여 한 행씩 참조할 수 있음
  • DB 조회 데이터(컬럼)를 자바 데이터로 변환하여 사용할 수 있음(.get~() 메소드)

➰ int executeUpdate (String sql);

INSERT, UPDATE, DELETE 구문을 수행할 때 사용

  • 반환값 int 데이터는 구문이 수행되었을 때 테이블에 영향을 받은 행 수 를 반환

➰ boolean execute (String sql);

DDL, DCL 구문을 수행할 때 사용

  • 수행된 SQL 쿼리가 ResultSet객체를 반환할 수 있을 때 true 반환 👉🏻 SELECT 구문일 때
  • 수행된 SQL 쿼리가 ResultSet객체를 반환하지 않을 때 false 반환 👉🏻 SELECT 구문이 아닐 때

    DDL, DCL은 할 일이 잘 없을 것임 1, 2번을 잘 해야~



    물음표에 대한 에러


🔍 SQL 수행 객체

➰ java.sql.Statement 객체

  • Connection객체를 이용하여 .createStatement() 메소드를 호출하여 생성
  • execute메소드의 매개변수로 SQL 구문을 적용

➰ java.sql.PreparedStatement 객체

  • Connection 객체를 이용하여 .prepareStatement(String sql) 메소드를 호출하여 생성
  • 객체를 생성할 때 SQL 구문을 적용
  • SQL 구문에 ? 파라미터를 적용할 수 있음
  • execute 수행 메소드를 호출하기 전에 ? 파라미터들을 다 채워서 SQL 구문을 완성해야 함

자동화 처리 플러그인

profile
IT꿈나무 댓츠미

0개의 댓글