JDBC 연결 (Oracle)

Bloooooooooooooog..·2023년 1월 30일
0

JDBC란

Java에서 DB에 연결할 수 있게 자바 프로그래밍 API
java.sql 패키지에서 제공한다.

* JDBC를 이용한 어플리케이션을 만들 때 필요한 것

  1. Java의 JDBC 관련 인터페이스
  2. DBMS(Oracle)
  3. Oracle에서 Java 어플리케이션과 연결할 때 사용할
    JDBC를 상속받아 구현한 클래스 모음(ojdbc 라이브러리)
    -> OracleDriver.class (JDBC 드라이버) 이용
  • https://mvnrepository.com/ 에서 ojdbc 라이브러리를 버젼에 맞게 다운로드 한다.
  • Java Project 우클릭 -> Properties -> Java Buid Path에 등록
	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를 통해 반환해준다!

profile
공부와 일상

0개의 댓글