본문 바로가기
Back-End/JDBC

[JDCB] select문 예문

by 찐코딩 2021. 10. 5.

 

package sist;

import java.sql.*;

// Select쿼리 문 작성하여 연동
// 특정 데이터베이스 테이블의 데이터를 가져와서 콘솔창에 출력할 것

public class Select {

	public static void main(String[] args) {

		Connection con = null;				// DB와 연결하는 객체
		
		PreparedStatement pstmt = null;		// SQL문을 전송하는 객체
		
		ResultSet rs = null; 			// SQL 실행 결과를 가지고 있는 객체
										// Select쿼리에서만 사용
		
		String url = "jdbc:oracle:thin:@localhost:1521:xe";	// URL 사용
		
		String driver = "oracle.jdbc.driver.OracleDriver";
		
		String user = "web";
		
		String password = "1234";
		
		
		// 1. 오라클 드라이버 로딩
		// 		==> 동적으로 로딩 : 프로그램 실행 시에 드라이버를 로딩한다
		// 드라이버 파일이 없으면 오류 발생  => 따라서 try catch 문으로 작성
		try { 
			Class.forName(driver);
			System.out.println("드라이버 로딩 성공!");
			
			// 2. 데이터베이스와 연결
			// 반환형이 Connection형이므로, 위에서 변수선언한 con에 대입
			con = DriverManager.getConnection(url, user, password);
			
			if(con != null) {
				System.out.println("데이터베이스 연동 성공!");
			}
			
			// 3. 데이터베이스에 SQL문을 전송하기 위한 쿼리문 작성
			String sql = "select * from memo order by bunho desc";
			
			pstmt = con.prepareStatement(sql);	// sql문을 인자로 넣거나
			// con.prepareStatement("select * from memo order by bunho desc")
			// 이렇게 작성해도 되긴 함.
			System.out.println("메모번호\t메모제목\t메모작성자\t메모내용\t메모작성일");
			System.out.println("------------------------------------------");
			// 4. 데이터베이스 SQL문을 전송
			rs = pstmt.executeQuery(); 		// 실제로 DB에서 SQL문을 실행하는 메소드
			
			// 5. 데이터를 가져와서 출력
			// 행의 갯수만큼 반복하여 출력
			while(rs.next()) { // rs.next() 은 boolean 타입으로 반환. 커서가 이동하면서 true/false값 반환
				int bunho = rs.getInt("bunho");	// 5라는 컬럼명 갖고옴
				String title = rs.getString("title"); // 5 컬럼의 타이틀명 가지고 옴
				String writer = rs.getString("writer");
				String content = rs.getString("content");
				String regdate = rs.getString("regdate").substring(0,10);
				
				System.out.println(bunho + "\t" + title + "\t" + writer + "\t" +
									content + "\t" + regdate);
				
				System.out.println("------------------------------------------");
			}
			
			// 6. 연결되어 있던 객체 종료시키기
			rs.close(); pstmt.close(); con.close();
		
		} catch(Exception e) {
			e.printStackTrace();
		}
		
	}

}

결과

드라이버 로딩 성공!
데이터베이스 연동 성공!
메모번호	메모제목	메모작성자	메모내용	메모작성일
------------------------------------------
6	10월 5일	강감찬	jdbc update	2021-10-05
------------------------------------------
5	메모5	이아무개	이아무개님 글	2021-10-05
------------------------------------------
4	메모4	김아무개	김아무개님 글	2021-10-05
------------------------------------------
3	메모3	유관순	유관순님 글	2021-10-05
------------------------------------------
2	메모2	이순신	장군님 글	2021-10-05
------------------------------------------
1	메모1	홍길동	홍길동님 글	2021-10-05
------------------------------------------

'Back-End > JDBC' 카테고리의 다른 글

[JDBC] sql_insert / update 문 예문  (0) 2021.10.05
[JDBC] JDBC 프로그래밍 / 드라이버 / url / delete  (0) 2021.10.05

댓글