상세 컨텐츠

본문 제목

select 쿼리문 수행

IT/DBMS

by TMI1 2025. 8. 4. 12:28

본문

// select  쿼리문 수행
// → 데이터베이스로부터 질의 결과를 가져와야 하는 경우
// → executeQuery() 메소드 사용
// → ResultSet 객체 반환 
// → (반복문 활용) 

package comm.test;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.naming.spi.DirStateFactory.Result;
import javax.print.DocFlavor.STRING;

import comm.util.DBConn;

public class Test03
{

	public static void main(String[] args)
	{
		Connection conn = DBConn.getConnection(); 
		
		if (conn != null)
		{
			System.out.println(">> 데이터베이스 연결 성공~!!! ");
		try
		{
			// 작업 객체 생성
			Statement stmt = conn.createStatement();
			
			// 쿼리문 준비 
			String sql = "SELECT SID, NAME, TEL FROM TBL_MEMBER ORDER BY SID";
			
			// 작업 객체를 활용하여 쿼리문 실행

			// 데이터베이스로부터 질의 결과를 가져와야 하는 경우
			// → executeQuery() 메소드 사용
			// 즉, executeQuery("SELECT SID, NAME, TEL FROM TBL_MEMBER ORDER BY SID") 를 사용하면
			// 질의 결과를 ResultSet 타입의 객체로 가져올 수 있다.(ResultSet 카세트 테이프 뽑아내는 것처럼 뽑는 구조 )
			// ResultSet 객체가 질의에 대한 결과물 모두를 수신 완료한 것은 아니다.
			// 단지, 데이터베이스로부터 획득한 질의 결과물에 대한 관리만 수행할 뿐이다.
			// 즉, ResultSet을 얻어냈다고 해서 데이터베이스와의 연결을 끊게 되면
			// ResultSet 객체는 더 이상 질의 결과를 관리할 수 없게 된다. 
			
			ResultSet rs = stmt.executeQuery(sql);
			
			// 연결된 형태의 데이터(레코드)로 결과값이 넘어온다.
			// 레코드들은 ResultSet 객체의 next() 메소드에 의해
			// 다음 레코드로 이동할 수 있다.
			// 모든 레코드를 출력해보기 위해서는 next() 메소드를 가지고
			// 다음으로 ... 또 그다음으로 ... 다시 또 그 다음으로 ... 이동하며 처리해야 한다.
			// 다음 레코드가 존재하면 next() 메소드는 true 를 반환한다. 
			
			while (rs.next()) 
			{
				String sid = rs.getString("SID");
				String name = rs.getString("NAME");
				String tel = rs.getString("TEL");
				String str = String.format("%3s %8s %16s", sid, name, tel);
				System.out.println(str);
			} 
			rs.close();
			
			stmt.close(); 
		} catch (Exception e)
			{
			System.out.println(e.toString());
			}
		
		}
		DBConn.close();
		
		System.out.println(">>데이터베이스 연결 닫힘 ~!!! ");		
		System.out.println(">> 프로그램 종료됨~!!!\n");
	}
}

 

'IT > DBMS' 카테고리의 다른 글

JDBC 프로그램의 작성  (2) 2025.08.04
싱글톤 패턴을 이용한 데이터베이스 연결 객체 생성  (0) 2025.08.04
작업객체의 의미와 종류  (1) 2025.08.04
JDBC 개념 및 환경설정  (7) 2025.08.04
Oracle - PACKAGE 실습  (0) 2025.07.16

관련글 더보기

댓글 영역