import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import db_util.DBConn;
/*
- 결과 집합 유형
TYPE_FORWORD_ONLY : 기본. 순방향(next)만 가능
TYPE_SCROLL_SENSITIVE : 순방향, 역방향 가능, 수정 결과 바로 반영
TYPE_SCROLL_INSENSITIVE : 순방향, 역방향 가능, 수정 결과 바로 반영 안됨
- 동시성 유형
CONCUR_READ_ONLY : 기본. 읽기만 가능
CONCUR_UPDATABLE : 수정도 가능
*/
public class Ex_Scroll {
public static void main(String[] args) {
Connection conn = DBConn.getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String sql = " SELECT hak, name, birth, kor, eng, mat FROM score ";
// pstmt = conn.prepareStatement(sql); // 기본으로 순방향(next)만 가능
// 순방향 및 역방향 가능
pstmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
char ch;
while(true) {
do {
System.out.print("1.처음 2.이전 3.다음 4.마지막 5.종료 => ");
ch = (char)System.in.read();
System.in.skip(2); // 엔터 버림
} while (ch<'1'||ch>'5');
if(ch=='5') {
break;
}
switch(ch) {
case '1':
if(rs.first())
System.out.println("처음->"+rs.getString(1)+":"+rs.getString(2));
break;
case '2':
if(rs.previous())
System.out.println("이전->"+rs.getString(1)+":"+rs.getString(2));
break;
case '3':
if(rs.next())
System.out.println("다음->"+rs.getString(1)+":"+rs.getString(2));
break;
case '4':
if(rs.last())
System.out.println("마지막->"+rs.getString(1)+":"+rs.getString(2));
break;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(rs != null) {
try {
rs.close();
} catch (Exception e2) {
}
}
if(pstmt != null) {
try {
pstmt.close();
} catch (Exception e2) {
}
}
}
}
}
부하를 많이 준다.
'쌍용강북교육센터 > 9월' 카테고리의 다른 글
0902_데이터 모델링 및 설계 (0) | 2021.09.03 |
---|---|
0902_Java : JDBC : 자바로 SQLPlus와 비슷한 프로그램 짜기 (0) | 2021.09.02 |
0901_Java : JDBC : Metadata 메타데이터 (0) | 2021.09.02 |
0901_Java : JDBC : 자바에서 transaction 처리 (0) | 2021.09.02 |
0901_Java : JDBC : 쿼리실행 (0) | 2021.09.02 |