PROJECT/커피숍

[토이/자바/JDBC] 커피숍 키오스크 만들기(6) : DB 모듈 구현

관리자ID 2024. 5. 8. 16:51

 

프로젝트에서 쿼리문을 실행할 때, JDBC API를 통해 Oracle Driver를 로딩하고 닫는 과정이 필요하다. 이러한 과정은 공통적으로 발생하므로 드라이버를 로드하고 연결 객체를 닫아주는 작업을 하나의 공통 모듈로 구현해보았다.

 

package coffee.pj.comm;

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

//DataBase 드라이버 로딩, 접속, 닫기 공통 모듈
public class DataBase {

	public DataBase() {
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		
	}//Oracle Driver 로딩
	
	/**
	 * RDBMS를 연결하여 접속 객체인 java.sql.Connection을 반환하는 메서드
	 * 현재 접속중인 계정 : COFFEE
	 * @return java.sql.Connection
	 * @throws SQLException
	 */
	public Connection getConnection() throws SQLException {
		Connection conn = null;
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String user = "COFFEE";
		String password = "COFFEE";
		conn = DriverManager.getConnection(url, user, password);
		return conn;
	}//RDBMS 연결. 접속 정보 객체 반환.
	
	/**
	 * 사용되어진 java.sql.* 객체를 닫아주는 메소드
	 * @param rs java.sql.ResultSet
	 * @param stmt java.sql.Statement
	 * @param conn java.sql.Connection
	 */
	public void closed(ResultSet rs, Statement stmt, Connection conn) {
		try {
			if(rs != null) {
				rs.close();
			}
			if(stmt != null) {
				stmt.close();
			}
			if(conn != null) {
				conn.close();
			}
		}catch(SQLException e){
			System.out.println("sql 객체 닫기 실패");
			e.printStackTrace();
		}
	}//sql 객체 닫기 메서드
	
}

 

 

공통 모듈을 만든 후 JUnit Test를 실행. 성공적으로 잘 작동하는 것을 확인했다.

public class Coffee_TestJUnit {

	// @Test //DataBase 공통 모듈 테스트
	public void database_Test() {
		DataBase db = new DataBase();
		Connection conn = null;
		try {
			db.getConnection();
			System.out.println("드라이버 로딩 완료");
		} catch (SQLException e) {
			System.out.println("드라이버 로딩 실패");
			e.printStackTrace();
		}

		db.closed(null, null, conn);
		assertNull(conn);
	}