상세 컨텐츠

본문 제목

JDBC 프로그램의 작성

IT/DBMS

by TMI1 2025. 8. 4. 12:23

본문

1. 드라이버 객체 생성
   데이터베이스와 연결을 위해 사용할 파일들이 있는지 확인한다.
   여기서는 굳이 객체를 생성하지 않고
   드라이버가 있는지만 확인하더라도 프로그램을 실행하는 데는 지장이 없다.
   
   ※ 드라이버 클래스 찾는 방법
      Class  라는 클래스의 forName() 메소드 사용   
      이 메소드는 매개변수로 받은 이름의 클래스를 찾아주는 역할열 하며(JVM에 로딩)
      해당 클래스를 찾지 못할 경우 ClassNotFoundException 예외를 발생시킨다.

2. 연결 객체 생성
   찾은 드라이버 클래스를 가지고
   설치된 데이터베이스 서버와 연결하는 Connection 객체를 생성한다.
   
    ※ Connection 객체는 DriverManager 클래스의 getConnection() 이라는
       static 메소드로 생성하게 된다.
       예외는 데이터베이스 서버와 연결하는 시점에서 발생하며
       SQLException 예외를 발생시키게 된다.

3. 작업 객체 생성
   연결된 포트를 통해 질의문을 보낼 수 있도록 도와주는 객체를 생성한다.
   자바에서는 크게 세 가지 방법으로 질의를 처리한다.
   
   1) Statement 객체 생성
      정적 질의를 처리할 때 주로 사용
   2) PreparedStatement 객체 생성 -- 재활용느낌 
      동적 질의를 처리할 때 주로 사용
   3) CallblestStatement  객체 생성
      프로시저나 함수를 호출할 수 있도록 처리해주는 객체 
      
4. 생성된 작업 객체가 수행하는 작업
   『executeUpdate()』 or 『executeQuery()』
*/

// 실행 예)
// 번호를 입력하세요(-1 종료) : 2 
// 이름을 입력하세요 : 김지형
// 전화번호를 입력하세요 : 010-2222-2222
// >> 데이터베이스 연결 성공~!!! 
// >> 회원 정보가 입력되었습니다~!!! 

// 번호를 입력하세요(-1 종료) : 3
// 이름을 입력하세요 : 유한수 
// 전화번호를 입력하세요 : 010-3333-3333
// >> 데이터베이스 연결 성공~!!! 
// >> 회원 정보가 입력되었습니다~!!! 

// 번호를 입력하세요(-1 종료) : -1
// >> 데이터베이스 연결 닫힘 ~!!! 
// >> 프로그램 종료됨~!!! 
package com.test;

import java.sql.Connection;
import java.sql.Statement;
import java.util.Scanner;

import com.util.DBConn;

public class Test02
{
	public static void main(String[] args) 
	{
		Scanner sc = new Scanner(System.in);

		// DBConn에 있는 getConnection 호출하면 얘가 반환하는 건 Connection임 
		Connection conn = DBConn.getConnection();
		
		
		
		// 연산처리 
		do { 
			System.out.print("번호를 입력하세요(-1 종료) : ");
			String sid = sc.next(); // next는 문자열 
			
			// 반복문을 깨뜨리는 조건 구성 
			if(sid.equals("-1"))
			{
			   break; // -1을 끝내 
			}
			System.out.print("이름을 입력하세요 : ");
			String name = sc.next();
			System.out.print("전화번호를 입력하세요 : ");
			String tel = sc.next();
			
			// db 커넥션을 가지고 확인하는 순간 
			if (conn != null) {
				System.out.println("데이터베이스 연결 성공~!!!");
				
				try {
					// 작업 객체 생성 - 수레 생성 
				Statement stmt = conn.createStatement(); // 3(작업객체) 4 =1 2(메소드 호출) 반환 
				
				   // 쿼리문 준비
				   //String sql = "INSERT INTO TBL_MEMBER(SID, NAME,TEL) VALUES(1, '최용', '010-1111-1111')";
				
					String sql = String.format("INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(%s, '%s', '%s')"
												// VALUES(1, '최용', '010-1111-1111') 모두 문자열이니까 
							, sid, name, tel);

					// → executeQuery() 메소드 사용

					int result = stmt.executeUpdate(sql);
					
					if (result > 0) {
						System.out.println(">>회원정보 입력되었습니다.");
					} 
				} catch (Exception e) {
					System.out.println(e.toString());
			}
		}

		}
		while (true);
		
		DBConn.close();
		System.out.println(">>데이터베이스 연결 닫힘 ~!!! ");		
		System.out.println(">> 프로그램 종료됨~!!!\n");
		sc.close();
	}
}

'IT > DBMS' 카테고리의 다른 글

select 쿼리문 수행  (1) 2025.08.04
싱글톤 패턴을 이용한 데이터베이스 연결 객체 생성  (0) 2025.08.04
작업객체의 의미와 종류  (1) 2025.08.04
JDBC 개념 및 환경설정  (7) 2025.08.04
Oracle - PACKAGE 실습  (0) 2025.07.16

관련글 더보기

댓글 영역