반응형
* 이 포스팅은 kslee7746.tistory.com/님의 포스팅을 학습한 뒤 추가로 공부한 후 재정리한 글입니다.
* 2차 가공 및 재배포를 금지합니다.
* 오탈자 및 잘못된 내용은 댓글달아주세요.
* 개념 설명은 아래의 링크에서 확인해주세요.
1. JDBC 소스코드
package practice;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestJDBC {
public static void main(String[] args) {
String ip = "본인 ip";
int port = 해당 포트;
String database = "DB명";
String user = "USER명";
String password = "PWD";
String DRIVER_NAME = "DB DRIVER_NAME";
String JDBC_URL = "jdbc:해당 DB:thin:@" + ip + ":" + port + ":" + database;
String sql = "SELECT * FROM TEST";
Connection conn = null;
Statement stmt = null; // DB와 소통하는 통로
ResultSet rs = null; // 결과받아서 처리할 때
try {
Class.forName(DRIVER_NAME);
System.out.println("드라이버 로드 성공");
conn = DriverManager.getConnection(JDBC_URL, user, password);
System.out.println("데이터베이스 접속 성공");
stmt = conn.createStatement();
rs = stmt.executeQuery(sql); // 쿼리 실행 후 데이터들이 rs 저장
while(rs.next()) { // 한 건 씩 처리
// 아래는 예시 TEST 테이블 컬럼 (id, name)
int id = rs.getInt(1); // 첫번째 컬럼 조회
String name = rs.getString("name"); // 컬럼 이름 지정 가능
System.out.println(id+ "\t" + name);
}
} catch (ClassNotFoundException e) {
System.out.println("driver load 실패");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("DB 연결 실패");
e.printStackTrace();
}
finally {
try {
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
* 이전 포스팅과 다른점
- finally 사용 유무
- 컬럼 목록 보여주기
- disconnect 방법
- DB 연결 시 rs.close(), stmt.close(), conn.close()는 매우 중요한 코드다.
- 그래서 이전 포스팅에서처럼 disconnect를 따로 빼지 않고 finally로 무조건 실행되게 수정함
( 이부분은 JNDI에서 아주 중요 )
- 컬럼 목록 보여주는 것도 getColumnCount()로 컬럼 갯수 반환해서 rs.getObject()로 보여주는 것이 아닌 getInt, getString으로 바로 가져오도록 함
반응형
'programming > Java' 카테고리의 다른 글
JAVA) Object 클래스 - clone 메소드 (0) | 2021.01.25 |
---|---|
JAVA) JNDI DB 연결 소스코드 (0) | 2021.01.06 |
JAVA) JDBC, DBCP, JNDI 차이점 (1) | 2020.12.31 |
JAVA) JDBC 동작 순서 및 SQL 전송에서 Statement, PreparedStatement 차이점 ( 소스코드 포함 ) (0) | 2020.12.31 |
자바 컴파일, 실행 (0) | 2020.11.04 |
댓글