백엔드/Spring Boot

[Spring] DB(오라클) 연동

an_apricot__ 2021. 6. 2. 23:45

<오라클 연동 후 기본 제공 테이블(EMP)의 데이터 출력하기>

import java.sql.*;

public class DBConnection {
	//필드(field)
	Connection conn;
	Statement stmt;
	ResultSet rs;
	
	//생성자(constructor)
	public DBConnection() {
		try {
			//1
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			//2
			String url = "jdbc:oracle:thin:@127.0.0.1:1521";   //오라클 서버의 네번째 db 타입(thin)으로 접근하는 주소
			String user = "scott";  //기본 제공 아이디로 로그인
			String password = "tiger";
			conn = DriverManager.getConnection(url, user, password);
			
			//3
			stmt = conn.createStatement();
			
		} catch (SQLException e) {
			// TODO: handle exception
		}
		
	}

	
	//Method
	public void getResult() {
		try {
			//4
			String sql = "select * from emp";
			rs = stmt.executeQuery(sql); 
			
			//5
			while(rs.next()) {
				//하나의 row 출력    >>  rs.getInt(columnIndex);
				System.out.print(rs.getInt(1)+"\t"); 
				System.out.print(rs.getString(2)+"\t");
				System.out.print(rs.getString(3)+"\t");
				System.out.print(rs.getInt(4)+"\t");
				System.out.print(rs.getString(5)+"\t");
				System.out.print(rs.getInt(6)+"\t");
				System.out.print(rs.getInt(7)+"\t");
				System.out.print(rs.getInt(8)+"\n");
			}
            
			rs.close();
			stmt.close();
			conn.close();
		
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}
}

1. 드라이버 로딩 - 빌드패스로 연결해준 jar 파일의 압축을 풀어 경로 확인 가능

2. Connection 객체 생성

3. Statement 객체 생성 - 데이터를 운반해주는 택시 역할
4. ResultSet 객체 생성 - sql 필요!
5. ResultSet 객체에서 데이터 가져오기 
   - rs.next() ---> rs의 row를 한 줄씩 넘기며 가져옴. 데이터가 있으면 true, 없으면 false

 


** sql의 종류와 사용 용도에 따라 알맞은 execute~ 메소드를 사용해야함
  - executeQuery : 쿼리의 실행결과(테이블)를 ResultSet에 담아옴 (리턴타입: ResultSet)
  - executeUpdate : sql 실행시 스크립트에 나오는 "n행이 삽입/수정/삭제 되었습니다."의 n값을 가져옴(리턴타입: int)