[34일 차] : JDBC _SELECT문 조회

서하루·2022년 11월 29일
0

(3) JDBC 공부기록

목록 보기
1/5
post-thumbnail

💡 JDBC란 ?

  • 자바에서 데이터 베이스에 접근할 수 있게 해주는 프로그래밍 API
  • 자바 프로그램에서 SQL을 실행할 수 있도록 데이터베이스를 연결해주는 응용프로그램 인터페이스(API)

💡 JDBC용 객체

1) DriverManager

  • 데이터 원본에 JDBC 드라이버를 통해 커넥션을 만드는 역할
  • Connection 객체를 생성하기 위한 객체
  • Class.fotName();
    Class.forName("oracle.jdbc.driver.OracleDriver");

2) Connection

  • 연결하고자하는 DB정보를 제시하여 해당 DB와 연결된 Connection 생성
  • Statemnet객체 생성시에도 Connection객체를 사용
  • DriverManager.getConnection();
    conn = DriverManager.getConnection("url", "계정명", "비밀번호")

3) Statement

  • Connection 객체에 의해 프로그램에 리턴되는 객체에 의해 구현되는 메소드 집합
  • sql문 실행 및 결과를 받는 객체
  • createStatement();
    stmt = conn.createStatment();

4) SQL문 전달·실행

  • Statement 객체를 이용해서 sql문 실행
    stmt.executeQuery(sql);

5) 조회된 결과 받기

  • 내가 실행할 sql문이 select문일 경우 stmt.executeQuery() : ResultSet
  • 내가 실행할 sql문이 dml문일 경우 stmt.executeUpdate() : int

6-1) SELECT문 일 경우 => ResultSet

  • ResultSet에 담겨있는 데이터를 하나씩 뽑아 vo 객체에 옮겨담기
  • 매개변수생성자로 생성과 동시에 초기화하기
  • 어떤 컬럼의 값을, 어떤 타입으로 뽑을건지 제시하기
  • rset.getInt(컬럼명), rset.getString(컬럼명) '''
    t = new Test(rset.getInt("TNO"), rset.getString("TNAME"), rset.getDate("TDATE"));

6-2) DML문 일 경우 => int(트랜잭션처리)

  • 성공시 commit
  • 실패시 rollback

7) 사용한 JDBC 객체 자원 반납

  • 생성된 역순으로 반납하기


🖊️ 내 PC DB상 JDBC 계정에 있는 TEST테이블 데이터 조회해보기


//	1. 조회된 데이터를 담을 자바 객체 셋팅
	Test t = null;
    
//	2. JDBC에 필요한 객체 셋팅
	Connection conn = null;
    Statement stmt = null;
    ResultSet rset = null;
    
//	3. 앞으로 실행할 SQL문
	String sql = "SELELT TNO, TNAME, TDATE FROM TEST WHERE TNO =1";
	
// ------------------------------------	
//  1. JDBC Driver 등록

Class.forName("oracla.jdbc.driver.OracleDriver");

//	2. Connection 객체 생성 == DB에 연결(url, 계정명, 비밀번호)

conn.DriverManager.getConnection("jdbc:oracle:thin:@loclahost:1521:xe", "JDBC", "JDBC");

//	3. Statement 객체 생성(sql문 실행을 위한 객체)
stmt = conn.createStatement();

//	4 ~ 5. sql문 전달하면서 실행 후, 결과 받기 => ResultSet
// 실행할 sql문이 select문이니까 !
rset = stmt.executeQuery(sql);

// 6. ResultSet에 담긴 데이터 필드에 옮겨담기
if(rset.next()) { // next는 행 커서를 옮겨주는 역할 , 해당 행이 있드면 true, 없으면 false 반환 => 조회된 행이 있을 경우
	
t = new Test(rset.getInt("TNO"), rset.getString("TNAME"), rset.getDate("TDATE"));
}

// 예외처리 !

// 7. 사용한 자원 반납하기 (생성된 역순으로 반납)
rset.close();
stmt.close();
conn.close();

// 조회된 결과 출력

if(t == null) { // 생성되지 않음 = 조회결과가 없는 경우
	System.out.println("조회결과가 없습니다.");
    } else {
    	System.out.println(t);

➡️ SELECT문 이클립스에서 출력결과



꼭 외워야할 구문들

1) jdbc driver 등록구문
📢 Class.forName("oracle.jdbc.driver.OracleDriver");

2) Connection 객체 생성
📢 DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "계정명", "비번호")

0개의 댓글