Bigfat

[Java] 데이터베이스 연동하기 본문

Java

[Java] 데이터베이스 연동하기

kyou 2017. 2. 23. 23:36

자바로 오라클 데이터베이스에 접속하여 조회(SELECT)해보자

  Oracle Database Express Edition 11g 시작하기로 오라클과 SQL Developer 툴을 설치하면 된다. 만약 다른 데이터베이스를 사용한다면 Driver와 Connection URL을 데이터베이스별 JDBC 설정(Oracle, MySQL, MSSQL)를 참고하여 변경해주자. ojdbc6.jar는 Referenced Libraries로 추가해주거나, \jre\lib\ext 폴더 안에 넣어두면 된다.

/**
 * DBConnection.java
 * 데이터베이스 연동 Main 클래스
 * @Date 2017. 2. 24.
 */
package com.edu.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DBConnection {
	PreparedStatement pstmt;		// An object that represents a precompiled SQL statement.
	
	public void test() {
		try {
			// 런타임시 클래스를 메모리에 올리는 방법 : reflection > OracleDriver.class loading > return Instance
			Class.forName("oracle.jdbc.driver.OracleDriver");	// 외부에 있는 jar파일의 클래스를 사용하기 위함.
			String url = "jdbc:oracle:thin:@localhost:1521:XE";
			Connection conn = DriverManager.getConnection(url, "hr", "1234");	// Parameter: url, user, password
			pstmt = conn.prepareStatement("select * from employees");		// 쿼리문 심음
			// select문: executeQuery()
			// insert, update, delete문: execueteUpdate()
			ResultSet resultSet = pstmt.executeQuery();

			while(resultSet.next()) {
				String firstName = resultSet.getString("first_name");	// Parameter: String columnLabel
				// columnIndex는 1부터 시작함.
				String lastName = resultSet.getString(3);		// Parameter: Int columnIndex
				System.out.print(firstName+" "+lastName);
				System.out.println();
			}
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		DBConnection dbc = new DBConnection();
		dbc.test();
	}
}


  자바로 데이터베이스에 접근하는 코드는 많이 있기 때문에 올리지 않으려 했는데, java.lang.Class.forName(String className) 때문에 올렸다. 이에 관해서는 다음 번에 자바의 리플렉션(Reflection, 반영) 기법과 싱글톤 패턴(Singleton Pattern)에 대해 공부하고 글을 써야겠다.

참고로 오라클 Express Edition(XE)은 제어판의 '프로그램 제거'로 삭제 가능하다.