coyojo10의 개발블로그!
JDBC - Connection 관리를 위한 클래스 작성 실습 본문
커넥션 설정과 자원반납등 모든 메소드가 공통으로 처리하는 부분을 구현하기위해
DB연동과 관련된 기능을 유틸리티처럼 제공하는 클래스를 작성
<순서>
1. 드라이버 로딩하기
2. DB서버 연결하기
3. 자원반납
=> 유틸리티처럼 사용할 것이므로 Static 블럭으로 구현
.
- Static 블록이란?? - java
- 객체는 여러 개를 생성하지만, 한 번만 호출되어야 하는 코드가 있다면 "static 블록"을 사용.
- Static은 객체를 생성하지 않아도 메소드를 호출할 수 있는 마법의 메소드.
- 객체가 생성되기 전에 한 번만 호출.
- 클래스 내에 선언 해야 하고 메소드 내에 선언하면 안된다!
- 클래스 초기화할 때 꼭 수행되어야 할 작업이 있을 경우 유용하게 사용됨.
public class DBUtil {
//드라이버 로딩
static {
//static 블럭이 DBUtil이 쓰이는 순간 static 블럭이 메모리에 올라가 실행된다!
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
}
//DB서버 연결 - DB서버에 연결하고 커넥션 객체를 리턴
public static Connection getConnection() { //Connection을 리턴타입으로 하는 getConnection메소드!
Connection con = null;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "scott"; // oracle에서 내가 쓰려는 계정의 user
String password = "tiger1234";
try {
con = DriverManager.getConnection(url, user, password);
}catch(SQLException e) {
e.printStackTrace();
}
return con;
}
// 자원 반납을 위한 close 메소드 만들기!
public static void close(ResultSet rs, Statement stmt, Connection con) {
try {
if(rs!=null)rs.close();
if(stmt!=null)stmt.close();
if(con!=null)con.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}// DBUtil 닫는 괄호
'백엔드' 카테고리의 다른 글
Servlet 정리 2 (0) | 2022.11.30 |
---|---|
Servlet 정리 (0) | 2022.11.29 |
JDBC 오라클 1 -오라클 드라이버 로딩하고 커넥션 설정 (0) | 2022.11.25 |
[자바] 다형성 정리! (2) | 2022.11.14 |
배열의 선언 ,생성, 초기화 (0) | 2022.11.01 |