
구조 설명
JDBC API란 무엇인가?
1) JDBC API는 자바 프로그램이 데이터베이스와 통신할 수 있도록 도와주는 일종의 다리.
즉. 비종속적인 영역(애플리케이션)과 종속적인 영역(DBMS)사이에서 중간 역할을 수행하는 표준 인터페이스이다.
2) 자바 프로그램이 데이터베이스와 안전하게 대화할 수 있게 도와줌
구조 설명
애플리케이션 <-> JDBC API(java.sql) <-> JDBC 드라이버 <-> 데이터베이스
JDBC 드라이버는 DBMS에 종속적인 영역으로 , 특정 데이터베이스와의 연결 및 상호작용을 처리한다.
어떻게 작동하나?
1) 애플리케이션이 JDBC API를 통해 데이터베이스에 연결한다.
2) 이때, JDBC 드라이버가 필요한데, 이것은 데이터베이스와 자바 프로그램을 연결해주는 역할을한다.
구조 설명
1.JDBC 드라이버 준비. => 데이터베이스에 연결하기 위한 도구 준비
java
Class.forName("com.mysql.cj.jdbc.Driver");
2.데이터베이스에 연결 : 프로그램과 데이터베이스를 연결
java
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "username", "password");
3.SQL 쿼리 실행 : 데이터를 가져오거나 저장하는 명령어를 사용
java
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
4.결과 처리 : 가져온 데이터를 프로그램에서 사용.
java
while (rs.next()) {
System.out.println(rs.getString("username"));
}
5.연결종료
java
rs.close();
stmt.close();
conn.close();
java
try {
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "username", "password");
//sql 작업 수행
} catch (SQLException e) {
e.printStackTrace();
} finally {
try { if (conn ! = null) conn.close(); } catch (SQLException e)
{e.printStackTrace(); }
}
예외 처리를 하는 코드를 뜯어볼까? - 각 코드에 대한 개념, 사용법, 유의점, 장단점
여기서 잠깐! 리소스를 정리하는 코드는 뭐야?
리소스를 정리하는 코드는 데이터베이스 연결과 같은 외부 자원을 사용한 후 이를 해제하는 코드이다. 리소스를 정리하지 않으면 메모리 누수나 데이터베이스 연결 고갈 등의 문제가 발생할 수 있다.
이를 방지하기 위해 사용한 리소스를 항상 적절히 정리해야 한다.
1.finally블록: 의미- try블록이 끝난 후 항상 실행되는 코드 블록. 예외가 발생하든 그렇지 않든 항상 실행된다. 이유- 예외 발생 여부와 관계업시 리소스를 정리하기 위해 사용한다.
2.if(conn!=null) conn.close(); : 의미- 데이터베이스 연결 객체 conn이 null이 아닌경우 conn.close()를 호출하여 연결을 닫습니다. 이유: conn이 null이 아닌경우에만 close()를 호출하여 NullPointerException을 방지하고, 데이터베이스 연결을 해제한다.
3.catch(SQLException e): 의미 - conn.close()호출 중 발생할 수 있는 SQLException을 처리합니다. 이유- close()호출 중에도 예외가 발생할 수 있기 때문에 이를 처리하여 프로그램이 비정상적으로 종료되지 않도록 합니다.
3.catch(SQLException e){e.printStackTrace();}
전체적 논리적 흐름
1.데이터베이스 연결 시도 : DriverManager.getConnection을 사용하여 데이터베이스에 연결합니다.
2.SQL작업 수행 : try블록 안에서 데이터베이스와 관련된 작업을 수행합니다.
3.예외처리 : catch블록에서 SQL작업 중 발생한 SQLException을 처리합니다.
4.리소스 정리: finally블록에서 데이터베이스 연결 객체 conn이 null이 아닌경우 close()를 호출하여 연결을 닫습니다.
JDBC는 자바 애플리ㅔ이션이 데이터베이스와 상호 작용할 수 있게 해주는 강력한 도구이다.
이를 통해 데이터를 효율적으로 관리하고 처리할 수 있다.