일단 자바에 JDBC를 연결하기 전에 오라클이 설치되어 있어야 하는데
오라클은 이렇게 까세요! 하고 링크를 딱 깔아주면 좋겠지만
안타깝게도 오라클 다시 깔기가 귀찮아서 구글에 오라클 설치방법을 검색하면 글이 많이 나오니
거기서 검색해서 깔도록 하자
이후 오라클이 설치 완료되었으면 프로젝트에 오른쪽 마우스 클릭을 한 뒤
Build Path -> Configure Build Path를 누르자
Libraries 탭으로 바꾸고 Add External JARs를 눌러주자
이후 ojdbc5 혹은 ojdbc6을 찾아야 하는데
경로를 모르겠다면 스크린샷처럼
내 컴퓨터로 들어간 후 jdbc를 쓰면 경로가 나온다
jdbc로 들어가 lib에 있는
ojdbc5 혹은 ojdbc6을 눌러주면 된다
ojdbc5와 6의 차이는
1.5버전 1.6버전 이상이고
_g가 붙어있는 것은
javac -g로 컴파일된 클래스들과 contain tracing code 제외인데
봐도 아무 느낌이 안오지 않나
그냥 ojdbc6을 고르면 된다
이렇게 ojdbc6이 추가가 되었으면 Apply and Close를 누르자
이제 ConnectionTest라는 이름으로 클래스 파일을 하나 만들어보자
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 연결 테스트용 자바 파일인 ConnectionTest 파일인데
여기서 봐야 할 포인트는
1. Class.forName("oracle.jdbc.driver.OracleDriver"); 을 통해 JDBC 드라이버를 로딩한다
2. 미리 SQL부터 URL, ID, PASSWORD를 작성해 두어야 한다
실전에서는 이렇게 하면 안되는데 이건 집에서만 할꺼니까 이렇게 해도 된다
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
3. Connection을 통해 DriverManager.getConnection 한 정보를 받아온다
파라미터에는 위의 작성한 URL, ID, PASS를 차례대로 넣어준다
Connection conn = DriverManager.getConnection(url,id,pass); // 드라이버 접속
4. Statement를 통해 특정 쿼리를 수행하고 ResultSet에 수행한 쿼리의 결과를 담는다
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql); // SQL 수행 후 객체 생성
5. while(rs.next()) 를 통해 결과를 뽑아낸다
쿼리를 돌리면 한 줄만 나오는 경우는 거의 없다
따라서 모든 줄을 뽑아내기 위해서는 ResultSet.next()를 사용해서 뒤에 결과가 없을 때까지 뽑아낸다
while(rs.next()) { // ResultSet에 다음 값이 없을때까지 출력
String Col1 = rs.getString("COL1"); // 컬럼 값 받아오기
int Col2 = rs.getInt("COL2");
System.out.println("COL1" + " " + "COL2"); // 컬럼명
System.out.println(Col1 + " " + Col2);
}
결과값을 받을 때에는 getString, getInt를 사용하여 데이터베이스 컬럼에 맞는 타입으로 받아와야 한다
숫자를 String으로 받을 수는 없으니..
6. 결과까지 출력하고 나오면 .close를 통해 위의 내용들을 종료해 준다
순서는 실행했던 순서의 반대로 하면 되는데
Connection -> Statement -> ResultSet의 순으로 왔으니
rs.close();
stmt.close();
conn.close();
반대로 이렇게 close() 시켜주면 된다
마지막으로 이클립스에서 작성한 ConnectionTest인데
티스토리 코드블럭이 제대로 작동하는지 확신이 안가서 이것도 첨부한다
jdbc는 처음 보면 뭐지 싶지만
순서만 기억하면 그닥 어렵지 않다
드라이버를 로딩하고
Connection을 통해 드라이버에 접속하고
Statement로 쿼리를 수행하고
ResultSet으로 결과를 받아오고
마지막으로 .close()로 닫아주면 된다
'IT > Java' 카테고리의 다른 글
Statement PreparedStatement 차이 알아보기 (0) | 2019.05.15 |
---|---|
자바 JDBC로 CRUD 해보기 (1) | 2019.05.13 |
카멜 케이스(Camel case) 표기법 알아보기 (0) | 2019.03.14 |
자바 오버라이딩, 오버로딩 사진 하나로 구분하기 (0) | 2019.02.21 |
자바 다형성(Polymorphism) 알아보기 (0) | 2019.02.21 |
댓글