JDBC 2


package kr.or.ddit.basic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import util.ScanUtil;
//問題)ユーザーが入力したLPROD ID値と比較
//LPROD IDを持つビッグデータを出力します.
public class JdbcTest02 {
public static void main(String[] args) {
	// DB 작업에 필요한 객체변수 선언
	Connection conn = null;
	Statement stmt = null;
	ResultSet rs = null;

	try {
		// 1. 드라이버 로딩
		Class.forName("oracle.jdbc.driver.OracleDriver");

		// 2. DB 연결 => Connection 객체 생성
		conn = DriverManager.getConnection(
				"jdbc:oracle:thin:@localhost:1521:xe", "IRIS", "java");

		// 3. 질의
		// 3-1) 사용자로부터 LPROD_ID 값을 입력받는다.
		System.out.println("LPROD_ID 값을 입력하세요");
		int id = ScanUtil.nextInt();
		
		System.out.println("입력한 값보다 LPROD_ID가 큰 자료를 출력합니다.");
		String sql = "SELECT *"
				+ "     FROM LPROD"
				+ "    WHERE LPROD_ID > " + id;

		// 3-2) Statement 객체 또는 PreparedStatement 객체를 생성한다.
		// (Connection 객체를 이용하여 생성한다.)
		stmt = conn.createStatement();
		
		// 3-3) SQL문을 DB 서버로 보내서 실행한 결과를 얻어온다.
		// 지금은 실행한 SQL문이 select문이기 때문에 select한 결과가
		// ResultSet 객체에 저장되어 반환된다.
		rs = stmt.executeQuery(sql);
		
		// 4. 결과 처리
		// rs.next() => ResultSet 객체의 데이터를 가리키는 포인터를 다음 위치로
		// 이동하고 그 곳에 데이터가 있으면 true를 반환한다.
		while (rs.next()) {
			// 포인터가 가리키는 곳의 자료 가져오기
			// 형식 1) rs.get자료형이름("컬럼명") 자료형이름
			// 형식 2) rs.get자료형이름(컬럼번호) => 컬럼번호는 1부터 시작한다.
			// 형식 3) rs.get자료형이름("컬럼의 alias명")
			System.out.println("LPROD_ID : " + rs.getInt("LPROD_ID"));
			System.out.println("LPROD_GU : " + rs.getString("LPROD_GU"));
			System.out.println("LPROD_NM : " + rs.getString("LPROD_NM"));
			System.out.println("------------------------------------");
		}

	} catch (SQLException e) {
		e.printStackTrace();
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} finally {
		// 5. 자원 반납
		if (rs != null) try { rs.close(); } catch (SQLException e) {}
		if (stmt != null) try { stmt.close(); } catch (SQLException e) {}
		if (conn != null) try { conn.close(); } catch (SQLException e) {}
	}
}
}