요르딩딩

[뉴렉처] JDBC 프로그래밍 (3,4,5,6강) 본문

[Web]/[DB & Mybatis]

[뉴렉처] JDBC 프로그래밍 (3,4,5,6강)

요르딩딩 2022. 1. 19. 08:44
728x90
반응형

3강 <JDBC 기본코드 이용하기>

# 드라이버(Driver)는 구동코드를 가지고 있습니다.

 

# JDBC를 이용하는 자바 코드

  1. Class.forName(“”oracle.jdbc.driver.OracleDriver)
  2. 드라이버 로드하기, 객체화 시키는게 로드하는 것이다, 메모리상에 드라이버가 올라간다.
  3. Connection con = DriverManager.getConnection(…); : 연결객체 얻기, 드라이버와 연결
  4. Statement st = con.createStatement(); : 실행도구 생성하기, 쿼리준비
  5. ResultSet rs = st.executeQuery(sql); : 쿼리 실행하여 결과 얻기(결좌집합 패치), 쿼리 실행, 레코드 단위로 하나씩 받게된다.
  6. rs.next(); : 패치한다. 레코드를 resultset에 담는다, BOF > EOF까지 순차적으로 가져온다.
  7. String title = rs.getString(“titile”);

모두 new 연산자로 생성하지 않는다.

그 이유는  드라이버 메니저가 생성되어야 > 연결할수 있고 > 연결되어야 실행할 수 있는 순차적인 방법이기 떄문이다.

 

# 조회한 레코드 읽기 

Before of File (BOF: 커서가 가리킴) : 파일의 처음 (rs.next()를 통해 처음 선택되는곳)

End of File(EOF) : 파일의 마지막 

 

4강 <쿼리 실행 실습하기>

public class Program{

	public staic void main(Stringp[ args){
    
        String url = “jdbc:oracle:thin@192.168.0.15:1521/xepdb1”;
        String sql = “SELECT * FROM NOTIC”

        Class.forName(“”oracle.jdbc.driver.OracleDriver) //드라이버 로드하기, 객체화 시키는게 로드하는 것이다, 메모리상에 드라이버가 올라간다.
        Connection con = DriverManager.getConnection(url, “newlec”, “*****”.); //연결객체 얻기, 드라이버와 연결
        Statement st = con.createStatement(); //실행도구 생성하기, 쿼리준비
        ResultSet rs = st.executeQuery(sql); //쿼리 실행하여 결과 얻기(결좌집합 패치), 쿼리 실행, 레코드 단위로 하나씩 받게된다.

        // 패치한다. 레코드를 resultset에 담는다, BOF > EOF까지 순차적으로 가져온다.
        if(rs.next()){
            String title = rs.getString(“titile”); //컬럼명 대문자/소문자 구분하지는 않음.
            System.out.println(”TITLW%s\n”, title);
        }

        //자원을 돌릴수 있는 함수 , 역순으로 (자원은 자동적으로 돌려주기는 하지만 성늘적인 측면에서 바로 해주는 것이 좋다.)
        //rs.close(); 
        //st.close()
        //con.close();
	}
}

# 에러 발생시

  1. project 마우스 오른쪽 > Build path > configure~ > add External jars > 다운받은 ojdbc8 가져오기> apply close
  2. 마지막 커서 에러 발생시 : if(re.next()) 일때만 실행하도록 처리
  3. 마지막 커서 에러 발생시 : DB 데이터 생성 > 오라클의 경우는 수동 commit 해줘야 한다.

5강 <혼자 풀어 보는 문제>

if(rs.next()){

    int id = rs.?(“ID”);
    String title = rs.?(“TITLE”);
    String writerId = rs.?(“WRITER_ID”);
    Date regDate = rs.?(“REGDATE’);
    String content = rs.?(”CONTENT”);
    int hit = rs.?(“hit’);

System.out.println(“”)
}

6강 <풀이겸 문제>

while(rs.next()){

    int id = rs.getInt(“ID”);
    String title = rs.getString(“TITLE”);
    String writerId = rs.getString(“WRITER_ID”);
    Date regDate = rs.getDate(“REGDATE’);
    String content = rs.getString(”CONTENT”);
    int hit = rs.getInt(“hit’);

System.out.println(“ id : %d, …”, id, …)
}
728x90
반응형
Comments