JAVA JDBC 연결 및 출력하기
안녕하세요. 에레메쓰입니다 :) 오늘은 JAVA JDBC 연결에 대해 알아보려고 합니다. 우선 오라클이 설치되어 있어야 되는데요. 오라클 설치법은 검색하면 많이 나오니 생략하고 연결 후 출력하는 것을 중점적으로 포스팅하도록 할게요.
오라클 설치 이후 프로젝트 > 우측 마우스 클릭 > Build path > Configure Build Path 순으로 클릭해 줍니다.
라이브러리 탭(Libraries)으로 변경하고 "Add External JARs" 버튼을 클릭합니다.
이후 ojdbc 파일을 찾아야 되는데 경로를 모르신다면 내 컴퓨터 > "jdbc" 검색하면 상기의 파일이 출력됩니다. 여기서 lib 폴더에 있는 ojdbc5 또는 6을 클릭해 줍니다. "_g"가 붙어있는 파일들은 "javac -g"로 컴파일된 클래스들과 contain tracing code 제외인데 ... 그냥 ojdbc6을 고르시면 됩니다.
이렇게 "ojdbc6.jar" 파일이 추가되었으면 적용 버튼을 클릭합니다.
이제 클래스 파일을 하나 만들건데요. 클래스명은 임의로 하면 되지만 보고 따라하시는 분은 개념과 방법을 익혀야 하니 그대로 따라해주세요.
# 코드블록
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectionTest {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver"); // 드라이버 로딩
System.out.println("드라이버 로딩 성공..");
String sql = "SELECT 'TEST' AS COL1, 10 AS COL2 FROM DUAL "; // SQL Query
String url = "jdbc:oracle:thin:localhost:1521:SID";
String id = "scott"; // 접속 ID
String pass = "tiger"; // 접속 PW
Connection conn = DriverManager.getConnection(url,id,pass); // 드라이버 접속
System.out.println("드라이버 접속 성공!");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql); // SQL 수행 후 객체 생성
while(rs.next()) { // ResultSet에 다음 값이 없을때까지 출력
String Col1 = rs.getString("COL1"); // 컬럼 값 받아오기
int Col2 = rs.getInt("COL2");
System.out.println("COL1" + " " + "COL2"); // 컬럼명
System.out.println(Col1 + " " + Col2);
}
// 연결 끊기
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
위의 코드블럭이 jdbc 연결 테스트용 파일 코드입니다.
여기서 주요 포인트는,
1) Class.forName("oracle.jdbc.driver.OracleDriver"); 을 통해 JDBC 드라이버를 로딩합니다.
2) 사전에 SQL 정보를 작성해야 합니다. (URL, ID, Password)
3) Connection을 통해 DriverManager.getConnection 정보를 받아옵니다. 여기서 받는 파라미터는 위 SQL 정보를 순서대로 넣어주면 됩니다.
4) Statement를 이용하여 지정한 쿼리를 수행하고 Resultset에 수행한 SQL 쿼리 결과를 집어 넣어 줍니다.
5) While문을 이용하여 결과를 뽑아내는데요. 한 줄만 나오는 경우는 거의 없습니다. 따라서, ResultSet에 값이 없을때 까지 출력합니다. 여기서, 결과 값을 받을 때, "getString" "getInt"를 통해 DB 컬럼에 맞는 형태로 받아와야 합니다. (숫자를 문자로 받을 수 없음)
6) 결과까지 출력하면 ".close()"를 이용하여 모두 종료해 줍니다. 순서는 Connetcion > Statement > ResultSet의 순으로 진행했으니 rs.close(); > stmt.close(); > conn.close(); 순으로 종료시켜주면 됩니다.
# 이클립스 코드
이클립스에서 작성한 코드인데 코드블럭과 비교하시면서 진행하면 되겠습니다. jdbc 연결은 어렵지 않으나 순서만 잘 기억하면 됩니다. 정리하면, 드라이버 로딩 > "Connection"을 통해 드라이버에 접속 > "Statement"로 쿼리 수행 > Resultset으로 결과 저장 > "close()"를 이용하여 종료하면 끝이납니다.
'깨알정보' 카테고리의 다른 글
페이코인 시세 전망, 지금 들어가도 될까 ? (10) | 2021.03.17 |
---|---|
JAVA Stack ? (4) | 2021.03.16 |
쿠팡 상장일 전망, 지금 들어가도 될까 ? (20) | 2021.03.14 |
자바 예외처리 파헤치기, Exception (8) | 2021.03.13 |
나이키 TC7900 써밋화이트 가격 사이즈, 판매처는 ? (14) | 2021.03.13 |
댓글