Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

coyojo10의 개발블로그!

JDBC - Connection 관리를 위한 클래스 작성 실습 본문

백엔드

JDBC - Connection 관리를 위한 클래스 작성 실습

coyojo 2022. 11. 29. 13:31

커넥션 설정과 자원반납등 모든 메소드가 공통으로 처리하는 부분을 구현하기위해

 

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