Yim-HaEun

[JDBC] 오라클에 SELECT문을 사용하여 데이터 출력하기 본문

SQL & JDBC/JDBC

[JDBC] 오라클에 SELECT문을 사용하여 데이터 출력하기

Yim_Ha_Eun 2023. 10. 18. 14:52

모든 데이터를 가져오는 것과 원하는 데이터를 골라 가져오는 방법이 있습니다.

 

1. 모든 데이터 출력하기

주로 여러행을 검색하는데 사용 조건없이 데이터베이스의 모든 데이터를 가져오는 경우
WHERE 절을 사용해서 일치하는 모든 행을 검색할 때 사용
결과는 주로 리스트나 배열 컬렉션 형식으로 반환
여러개의 결과를 반환할 수 있고, 결과가 없을 수 있음

 

일단 먼저 맨 처음 시작할때  드라이버 연결을 해줍니다.

 

 

SQL의 url, user,password 가져오기

 

저는 산리오 친구들 데이터를 만들어 놓은걸 예시로 가져올게요.

 

제가 만든 sanriofriends 테이블입니다.

 

connection 을 사용하여 url,username,password를 연결해준다.

 

 

Connection위에 마우스를 올리고 import 해줍니다.

sql import문이 생성된걸 확인하시고

DriverManager ~~ 빨간부분에 마우스를 갖다 대 

try - catch 문을 넣어줍니다.

 

이제 try문 안에서 코딩을 계속 할게요

 

 

String selectQuery = "셀렉트 문";

여기에 ORDER BY나 WHERE절 추가 가능합니다.

sanriofriends라는 테이블의 모든 자료 검색(출력)

 

 

 

PreparedStatement 사용해 sql 쿼리를 실행할 준비

 

PreparedStatement selectState = con.prepareStatement(selectQuery);

PreparedStatement도 마우스 갖다대 java.sql import하기

 

 

ResultSet result = selectState.executeQuery();

 

ResultSet executeQuery() 메서드를 호출하여 SQL SELECT 쿼리를 실행하고

 그 결과를 ResultSet 객체에 저장,

  ResultSet  결과 집합을 표현하는 객체

 

ResultSet에 담은 결과 집합을 next()를 사용하여 확인

while문을 사용하여 덩어리째 가져오는 자료들을 하나씩 출력해줄겁니다.

예시)

while(result.next()){   //로 표기
      xxx 변수명 = result.getxxx("DB테이블에서 불러올 행 작성");
      int accountID = result.getInt("account_id");
값을 추출할 때 예약어에 맞는 값을 넣고 추출

 

출력문 작성


 

전체코드


2. If문을 활용해 원하는 값만 출력하기

 주로 단일 행(레코드) 검색하는 데 사용
일반적으로 WHERE 절을 사용해서 조건을 지정하고
결과로 단일 객체나 레코드를 반환
결과가 없거나 여러 결과가 나오는 경우 첫번째 결과만 주로 반환
주요키(PRIMARY KEY) 값으로 검색하거나 고유한 결과를 필요로 하는 경우에 사용 

 

 

위에서 했던 것과 같이 값을 넣어줍시다.

 

빨간 줄이 뜨는 문장에 마우스를 갖다대 try - catch 문 넣어주기

String selectQuery = "SELECT * FROM sanriofriends WHERE s_name in (?,?)";

PreparedStatement selectState = con.prepareStatement(selectQuery);

String[] targetAN = {"포차코","한교동"};
selectState.setString(1, targetAN[0]);
selectState.setString(2, targetAN[1]);

 

where 절 해석을 해보자면

s_name이라는 컬럼에서 '포차코'라는 값을 가진  *모든 데이터와

'한교동'이라는 값을 가진 모든 데이터를 가져오는 겁니다.

(?,?) 과 selectState.setString(1,targetAN[0]);

은 물음표의 자리를 나타냅니다.

첫번째 물음표 자리에 targetAN[0]의 값인 '포차코'를 넣어주겠다는 뜻.

 

바로 아래에 ResultSet 메서드를 넣고

if문을 사용합니다.

컬럼들을 참고하여

while문 작성

 

 

실행해보면

 

데이터 출력이 됩니다.

전체 코드