카테고리 없음
JDBCTemplate
mi-ni
2024. 2. 23. 00:42
package com.kh.common;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JDBCTemplate {
// 1. Connection 객체 생성 한 후 해당 Connection 객체를 반환해주는 getConnection 메소드
public static Connection getConnection() {
Connection conn = null; // 초기화
Properties prop = new Properties(); // Map 계열 컬렉션(key-value)
// 읽어들이고자 하는 classes 폴도 내에 driver.properties 파일의 물리적인 경로
String filePath = JDBCTemplate.class.getResource("/db/driver/driver.properties").getPath();
// "C:/05_server-workspace2/jspProject/WebContent/WEB-INF/classes/db/driver/driver.properties"
try {
prop.load(new FileInputStream(filePath)); // "/"라고 쓰면 현재 이 프로젝트에서 클래스파일들이 모여잇는 폴더를 가리킴
} catch (IOException e1) {
e1.printStackTrace();
}
try {
// jdbc driver 등록
Class.forName(prop.getProperty("driver"));
// 접속하고자 하는 db의 url, 계정명, 비밀번호 제시해서 Connection 객체 생성
conn = DriverManager.getConnection(prop.getProperty("url"),
prop.getProperty("username"),
prop.getProperty("password"));
conn.setAutoCommit(false); // default 값: true
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
// 2_1. Connection 객체 전달받아서 commit 시켜주는 commit 메소드
public static void commit(Connection conn) { // 어딘가에서 받아서 커밋하는 ..
try {
if(conn != null && !conn.isClosed()) {
conn.commit();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 2_2. "" rollback 시켜주는 rollback 메소드
public static void rollback(Connection conn) {
try {
if(conn !=null && !conn.isClosed()) {
conn.rollback();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 3_1. Connection 객체 전달받아서 반납시켜주는 close 메소드
public static void close(Connection conn) {
try {
if(conn !=null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 3_2. Statement 객체 전달받아서 반납시켜주는 close 메소드
public static void close(Statement stmt) {
try {
if(stmt != null && !stmt.isClosed()) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 3_3. ResultSet 객체 전달받아서 반납시켜주는 close 메소드
public static void close(ResultSet rset) {
try {
if(rset != null && !rset.isClosed()) {
rset.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
driver.properties
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:xe
username=SERVER
password=SERVER