Java에서 DB에 연결할 수 있게 자바 프로그래밍 API
java.sql 패키지에서 제공한다.
Connection conn = null;
// DB연결 정보를 담은 객체
// -> DBMS의 타입, 이름, IP, Port, 계정명, 비밀번호 저장
// DB와 Java 사이를 연결해주는 통로
Statement stmt = null;
// Connection을 통해 SQL문을 DB에 전달하여 실행하고
// 생성된 결과(ResultSet, 성공한 행의 개수)를 반환(Java)하는 데 사용되는 객체
ResultSet rs = null;
// SELCET 질의 성공 시 반환되는데
// 조회 결과 집합을 나타내는 객체
가장 먼저 이와 같은 준비를 해준다.
이후 예외처리를 위해 try문 안에 코드를 작성해준다.
Class.forName("oracle.jdbc.driver.OracleDriver");
//-> 메모리에 객체가 생성되고, JDBC 필요시 알아서 참조해서 사용
// 최근에는 작성하지 않아도 자동으로 (명시적으로 작성하는 걸 권장)
String type = "jdbc:oracle:thin:@"; // JDBC 드라이버 종류
String ip = "localhost"; // DB 서버 컴퓨터의 IP
// localhost == 127.0.0.1 (loop back IP)
String port = ":1521"; // 포드 번호 1521 (기본값)
String sid = ":XE"; // DB이름
String user = "DB의 계정명";
String pw = "DB의 계정 비밀번호";
// DriverManager : 메모리에 로드된 JDBC 드라이버를 이용해서 Connection 객체를 만드는 역할
conn = DriverManager.getConnection(type + ip + port + sid, user, pw);
// conn에 연결 정보를 담아주었다.
// type + ip + port + sid 는 url을 나타낸다.
String sql = "SELECT EMP_ID, EMP_NAME, SALARY, HIRE_DATE FROM EMPLOYEE";
// DB에서 조회할 SQL문을 작성해준다.
stmt = conn.createStatement();
// Statement는 일종의 버스, SQL문을 데이터베이스에 전달하고 ResultSet을 담아준다.
rs = stmt.executeQuery(sql);
// 나온 결과(ResultSet)을 rs객체에 담아준다.
while(rs.next()) {
// rs.next() : rs가 참조하는 ResultSet 객체의 첫 번째 컬럼부터 순서대로 한 행씩 이동하며
//다음 행이 있을 경우 true / 아니면 false
String empId = rs.getString("EMP_ID");
String empName = rs.getString("EMP_NAME");
int salary = rs.getInt("SALARY");
Date hireDate = rs.getDate("HIRE_DATE");
// 자료형에 맞게 rs.get()메소드를 통해 결과를 가져온다.
System.out.printf("사번 : %s / 이름 : %s / 급여 : %d / 입사일 : %s\n", empId, empName, salary, hireDate.toString());
// java.sql.Date의 toString()은 yyyy-mm-dd 형식으로 오버라이딩 되어있음.
이후 사용한 자원을 close를 통해 반환해준다!