Database

<Database> JDBC 활용_1

춘햄 2021. 4. 5. 18:06

Oracle의 JDBC 라이브러리를 활용하여 JAVA에서 DBMS를 조작할 수 있다. 하지만 그 전에 데이터베이스 연동에 꼭 필요한 OracleDriver 클래스의 위치를 정확하게 파악하고 있어야 한다.

 

 

JAVA에서 Database에 접속하는 순서는 다음과 같다.

더보기

1) 드라이버 로딩: "oracle.jdbc.driver.OracleDriver" 

2) 드라이버 매니저를 이용하여 DB에 접속하고, Connection객체 가져오기

   접속 주소: "jdbc:oracle:thin:@127.0.0.1:1521:XE"

   Connection 객체: Connection conn = DriverManager.getConnection(url, "name", pwd");

3) SQL 명령어를 실행시키기 위한 객체 생성

   - Statement : 단순 문자열의 쿼리를 실행할 때
   - PreparedStatement: 변수를 포함해야하는 쿼리를 실행할 때

4) 원하는 작업 수행

4. 원하는 작업 수정, 삭제, 조회, 추가하기
-> ResultSet 객체의 next() 메서드를 이용하여 레코드를 한줄씩 읽을 수 있다.

간단한 예제를 만들어 보면, 

 


○JDBC_CLASS:

package com.choonham;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBC_Class {

	public JDBC_Class() {
		
	}
	
	/* 오라클 데이터베이스에 접속하는 메서드*/
	public static void oracleConnection() {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver"); //forName메서드로 드라이버를 로딩
			System.out.println("드라이버 로딩 성공!");
			
			String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";  // Localhost의 접속 주소
			Connection conn = DriverManager.getConnection(url, "choonham", "6725"); //userName 과 password 로 로그인 
			System.out.println("접속 성공!!");
			Statement stmt = conn.createStatement();    //쿼리문을 실행하기 위한 객체
			
			String query = "select * from member"; 
			ResultSet rs = stmt.executeQuery(query);    //쿼리문을 실행, ResultSet객체를 반환
			System.out.println("쿼리문 실행 완료!");
			
			ResultSetMetaData rsmd = rs.getMetaData(); //메타 데이터 영역(필드명) 값 가져오기
			
			int num = rsmd.getColumnCount();  //조회한 필드의 갯수를 얻을 수 있음
			System.out.println("조회된 테이블의 컬럼의 개수: " + num);
			
			// 컬럼의 인덱스 번호는 1번부터 시작한다.
			System.out.println(rsmd.getColumnName(1));
			System.out.println(rsmd.getColumnName(2));
			System.out.println(rsmd.getColumnName(3));
			//System.out.println(rsmd.getColumnName(0)); //에러
			
			//결과 레코드 값 가져오기
			while(rs.next()) {
				System.out.println(rs.getString(1) + " : " + rs.getString(2) + " : " + rs.getString("pwd")); 
				//getString메서드는 컬럼의 인덱스, 필드명 둘 다 사용이 가능하다.
			}
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.print("드라이버 로딩 실패: " + e.getMessage());
		}  catch(SQLException e) {
			System.out.print("DB 접속에 실패했습니다." + e.getMessage());
			
		}
	}

}

○output:

이렇게 간단한 코드 몇줄로 JAVA와 Database를 연결할 수 있다.