본문 바로가기
##JDBC

JDBC Template

by 운중동토토로 2024. 9. 1.

▶ JDBCTemplate

 

매번 반복적으로 사용한 코드들을 메소드로 정의하기 위한 용도 (☆공통 템플릿★)

객체를 매번 생성하지 않고 메소드를 호출할 수 있도록,
-  모든 메소드를 static 메소드로 정의!
    => 싱글톤 패턴 : 메모리영역에 한번만 올려두고 매번 재사용하는 패턴

 

1. Connection 객체 생성 메소드

/**
 * Connection 객체 생성 메소드
 *   DB접속 후 해당 Connection 객체를 반환
 * @return 생성된 Connection 객체
 */
public static Connection getConnection() {
	Connection conn = null;

	try {

			Class.forName("oracle.jdbc.driver.OracleDriver");

			conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe"
											, "C##JDBC"
											, "JDBC");
			conn.setAutoCommit(false);

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	return conn;
}

2. Connection 객체를 Commit 처리

/**
 * commit 처리를 해주는 메소드
 * @param conn 생성된 Connection 객체
 */
public static void commit(Connection conn) {
	try {
			// Connection 객체가 생성되어있고(null이 아니고), 닫혀있지 않을때
			if (conn != null && !conn.isClosed())
					conn.commit();
 		} catch (SQLException e) {
			e.printStackTrace();
	}
}

3. Connection 객체를 rollback 처리

/**
 * rollback 처리해주는 메소드
 * @param conn
 */
public static void rollback(Connection conn) {
	try {
		// Connection 객체가 생성되어있고(null이 아니고), 닫혀있지 않을때
		if (conn != null && !conn.isClosed())
				conn.rollback();
		} catch (SQLException e) {
				e.printStackTrace();
	}
}

4. Connection 객체를 close 처리

/**
 * Connection 객체를 close 처리해주는 메소드
 * @param conn
 */
public static void close(Connection conn) {
	try {
		// Connection 객체가 생성되어있고(null이 아니고), 닫혀있지 않을때
		if (conn != null && !conn.isClosed())
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
	}
}

5. statement 객체를 close처리

/**
 * Statement 관련 객체를 전달받아서 close 처리해주는 메소드
 * @param stmt Statement 객체 또는 그 자식 객체 (PreparedStatement...)
 */
public static void close(Statement stmt) {
	try {
		if (stmt != null && !stmt.isClosed())
				stmt.close();
		} catch (SQLException e) {
				e.printStackTrace();
	}
}

6. ResultSet 객체를 close처리

/**
 * ResultSet 객체를 close 처리해주는 메소드
 * @param rset
 */
public static void close(ResultSet rset) {
	try {
		if (rset != null && !rset.isClosed())
				rset.close();
		} catch (SQLException e) {
				e.printStackTrace();
	}
}






'##JDBC' 카테고리의 다른 글

Properties  (1) 2024.09.03
JDBC 기초  (1) 2024.09.01