백엔드 과정/jdbc

[JDBC] DriverManager 란?

mim 2022. 2. 3. 20:16
반응형

DriverManager

데이터 원본에 JDBC 드라이버를 통하여 커넥션을 만드는 역할

Class.forName() 메소드를 통해 생성되며 반드시 예외처리를 해야 함
직접 인스턴스 생성이 불가능하고 getConnection() 메소드를 사용하여 인스턴스 생성 가능

 

 

Driver 등록하는 방법을 코드로 알아보자.

 

1. 리터럴하게 전달하는 방법

	Connection con = null;

	try {
		/* 사용할 드라이버 등록 */
		Class.forName("oracle.jdbc.driver.OracleDriver");

		/* DriverManager를 이용해 Connection 생성 */
		conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe"
           							, "C##EMPLOYEE", "EMPLOYEE");
		System.out.println(con);

	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	} finally {
		if (con != null) {
			try {
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

 

2. 변수를 이용해 작성한 문자열이 어떤 의미인지 알 수 있도록 개선

		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String user = "C##EMPLOYEE";
		String password = "EMPLOYEE";
		
		Connection conn = null;

		try {
			/* 사용할 드라이버 등록 */
			Class.forName(driver);

			/* DriverManager를 이용해 Connection 생성 */
			conn = DriverManager.getConnection(url, user, password);

			System.out.println(conn);

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}

 

3.  .properties 파일에서 설정정보 읽어와 접속하는 코드로 개선

	Properties prop = new Properties();
		
	Connection conn = null;

	try {
		prop.load(new FileReader("파일경로/파일명.properties"));
			
		String driver = prop.getProperty("driver");
		String url = prop.getProperty("url");
		String user = prop.getProperty("user");
		String password = prop.getProperty("password");
			
		/* 사용할 드라이버 등록 */
		Class.forName(driver);

		/* DriverManager를 이용해 Connection 생성 */
		conn = DriverManager.getConnection(url, user, password);

		System.out.println(conn);

	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	} finally {
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

 

프로퍼티 파일안에 작성된 내용 

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:xe
user=C##EMPLOYEE
password=EMPLOYEE
반응형