본문 바로가기

Language/Java 기본

JDBC 1

M - Model -> DB 에 관련된 일(추가 수정, 삭제 , 조회)

DAO(Data Access Object)

VO(Value Object)

 

V - View -> 사용자 인터페이스 ( GUI, UI, XML, JSP)

C - Controller -> 사용자 요청에 따른 처리

 

 

 

자바에서 데이터 베이스에 접속할 수 있도록 하는 자바 API.

데이터 베이스에서 자료를 쿼리하거나 업데이트 하는 방법 제공.

 

 

JDBC를 이용하는 경우 interface를 기반으로 구축되기 때문에 

데이터 베이스를 사용 하더라도 동일한 코드를 작성할 수 있다.

 

 

『JDBC 연결 과정』

 

DB 연결 - Query 전송 - 결과를 이용한 작업처리 - 닫기

 

1. JDBC 드라이버 로딩

2. DriverManager.getConnection을 통해 DB Connection을 구함

3. Query 실행을 위해 Statement 객체 생성

4. Query를 실행

5. Query 실행 결과 사용

6. Statement 종료

7. 데이터 베이스 커넥션 종료

 

 

『 DriverManager 클래스 』

JDBC 드라이버를 통해 커넥션을 만든다.

Class.forName() 메서드를 통해 생성된다. (동적 생성)

 

『 Connection  인터페이스 』

데이터베이스에 접속하기 위한 모든 메서드를 가진 인터페이스

 

 

『 ResultSet  인터페이스 』

 

Select 문을 사용한 질의의 경우 성공 시 결과물로 ResultSet을 반환.

ResultSet은 SQL 질의에 의해 생성된 테이블이 담김.

ResultSet 객체는 Cursor라고 불리는 것을 가지고 있는데, 이를 통해 특정 행 대한 참조를 조작 가능

 

 

 

 

 

【 사용 소프트웨어 】

 

SQL Developer

 

 

 

 

data source Explorer에서 Database Connections 메뉴의 New connection Profile를 들어가면 다음과 같이

Oracle 드라이버를 연결할 수 있다.

 

 

 

 

내 컴퓨터[localhost]에 저장된 hr계정으로 접속하였다, 이 때 오라클 포트번호는 1521이며

기본 서비스 네임은 xe로 설치 시 지정되었다.

 

 

JDBC 사용을 위해 ClassPath 설정을 다음과 같이 하여주어야 한다.

 

SQL 문을 입력하는 공간이 존재하는데 다음과 같이 쿼리를 작성하고

영역만큼 Alt+X 를 누르면 해당 영역만큼의 쿼리가 실행된다.

쿼리의 실행여부는 아래의 SQL Results 탭을 통해 오류 메시지와 오류 여부를 확인할 수 있다.

 

 

ojdbc6.jar 파일의 라이브러리.

 

 

중에  OracleDriver 를 읽기 위해 Oreacle.jdbc.driver 패키지의 OracleDriver.class 를 불러온다.

 

OracleDriver를 불러오기 위해 동적로딩을 하였다.

 

 

 

『try ~ catch 문 』

프로그램의 예외처리를 실행하는 구문

try : 구문을 실행한다.

Catch: try문의 로직 실행 중 오류 발생시 실행 됨.

 

예를들어, 위에 ClassNotFoundException e 는,  클래스 파일을 찾지 못했을 경우의

예외처리 문장을 출력한다.

 

 

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Scanner;

public class jdbc_main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		boolean isPlay = true;

		while (isPlay) {
			System.out.println("[1] 회원등록 [2] 회원수정 [3] 회원조회 [4] 회원삭제 [5] 종료");
			int select = sc.nextInt();

			switch (select) {
			case 1:
				// 1. JDBC 드라이버를 로딩하여야 함. // 동적 로딩,
				try {
					String url = "jdbc:oracle:thin:@localhost:1521:xe";
					String user = "hr";
					String password = "hr";
					Class.forName("oracle.jdbc.driver.OracleDriver");

					// 2.DB 연결
					Connection conn = DriverManager.getConnection(url, user, password);
					if (conn == null) {
						System.out.println("db연결 오류");
					} else {
						System.out.println("db 연결 성공");

					}

				} catch (ClassNotFoundException e) {

					e.printStackTrace();
				} // try~catch 문, : 프로그램의 예외처리를 실행하는 구문, try : 실행, Catch : try문의 로직 실행 중 오류 발생시,
					// 실행
				catch (SQLException e) { // SQL 커넥션에 대한 예외처리.
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				break;
			case 2:
				break;
			case 3:
				break;
			case 4:
				break;
			case 5:
				System.out.println("프로그램 종료");
				isPlay = false;
				break;
			default:
				break;
			} // end switch
		} // end while

	}
}

DB에 연결하기 위한 기본 문장이다.

우선 첫 번째로 드라이버 매니저를 드라이버를 로딩하여야 한다.

두 번째로 DB 에 연결하기 위해 Conn 객체를 생성하여야 하며, Java.sql 라이브러리의 Connection 클래스를 이용하였다.

php 등과 다르게 자바의 경우 url, user, password에 대해 선언되지 않았으므로, 이들도 자료형과 Url, User, Password 드을 선언하고, 각 드라이버 로드, DB 연결에 대한 예외처리 구분을 추가하여야 한다.

 

'Language > Java 기본' 카테고리의 다른 글

GUI  (0) 2021.01.14
인터페이스  (0) 2021.01.11
상속과 다형성, 오버라이딩  (0) 2021.01.09
생성자 및 접근제한자  (0) 2021.01.08
ArrayList  (0) 2021.01.08