Connection conn = null;
DB연결 정보를 담는 객체, 이 정보를 이용해 Java-DB 연결 통로 생성
Connection을 상속 받아 구현한 자식 객체가 대입될 예정
DBMS 이름, 타입, IP, PORT, 계정명, 비밀번호 저장
DBeaver의 계정 접속 방법 추가와 유사함
왜 Connection은 인터페이스일까??
DBMS마다 연결 정보, 방법이 다르기 때문에
상속을 받아 공통된 부분을 DBMS 마다 알맞게 구현하고
구현된 객체를 Java에서 참조해서 사용
Statement stmt = null;
DBMS로 작성한 쿼리문을 실행)ResultSet 또는 DML 성공 행의 개수)를 반환 받는데 사용되는 객체ResultSet rs = null;
SELECT 수행 결과를 저장하는 객체
조회 결과의 집합을 나타냄
테이블 모양으로 반환됨
ResultSet 객체를 이용해서 1행씩 접근
더 이상 접근할 행이 없을 경우 false 반환
Class.forName("oracle.jdbc.driver.OracleDriver");
-> () 작성된 경로에 존재하는 클래스를 이용해 객체를 생성
-> 메모리에 객체가 생성되고 Connection을 이용한 DB 연결시
이를 자동으로 참조한다.
**DB 연결을 위한 정보를 변수에 저장**
tring type = "jdbc:oracle:thin:@"; // 드라이버 종류
String ip = "115.90.212.**";
String port = ":**00"; // 컴퓨터 내 응용프로그램 번호
String dbName = ":**";
String user = "**_***";
String pw = "oracle_**";
**DriverManager 객체**
- 메모리에 로드된 JDBC드라이버 객체를 이용해 DB에 접근하고
작성된 정보를 이용해 DB와 연결 가능한
Connection 객체를 만들어 얻어오는 역할을 하는 객체
// Connection (통로) 생성 -> SQLException 발생 가능성이 있음
conn = DriverManager.getConnection(type+ip+port+dbName,user,pw);
String sql = "SELECT EMP_ID, EMP_NAME, SALARY, HIRE_DATE FROM EMPLOYEE";
// 4. Statement 객체 생성
// -> DB에 SQL 전달 후 수행 -> 결과를 반환 받음
// ---> Connection 내부에 생성되어 DB와 통신하는 역할
stmt = conn.createStatement();
// 5. Statement 객체를 통해 SQL(SELECT)을 수행하고
// 결과(ResultSet)를 반환 받아와서 저장(rs)
rs = stmt.executeQuery(sql);
// executeQuery() : SELECT문을 수행하는 메서드
// 결과로 ResultSet 반환
// 3단계 : SQL 수행 결과로 반환 받은 ResultSet을
// 첫 번째 행부터 1행씩 접근하여 컬럼 값을 얻어와 출력
while(rs.next()) {
// 조건식의 결과가 true일때 수행(반복)
// rs.next()
// - ResultSet 객체는 조회 결과를 한번에 테이블로 다루는 것이 아닌
// 커서라는 것을 이용해서 1행씩만 접근
// - 커서를 다음 행으로 이동 후
// 행이 존재하면 true, 없으면 false 반환
// ** 현재 접근한 행의 컬럼 값을 얻어와 출력 **
// rs.get자료형(컬럼명|컬럼순서);
// [Java] [DB]
// Strong CHAR, VARCHAR2
// int, long NUMBER(정수만)
// float, double NUMBER(실수만)
// java.sql.Date DATE
String empId = rs.getString("EMP_ID");
// 현재 커서가 접근한 행의 "EMP_ID" 컬럼의 값을 얻어와ㅓㅅ
// String으로 반환한다.
String empName = rs.getString("EMP_NAME");
int salary = rs.getInt("SALARY");
Date hireDate = rs.getDate("HIRE_DATE");
System.out.printf("사번 : %s / 이름 : %s / 급여 : %d / 입사일 : %s \n", empId,empName,salary,hireDate.toString());
}