DB - 오라클과 이클립스(자바) 모든정보열람(Select All) (2022-08-05)

2022. 8. 5. 13:333층 1구역 - 개발의 장/Oracle DataBase

이전 게시물에서 오라클의 명령 프롬프트와 이클립스를 연결시켜서 명령 프롬프트에 내용을

이클립스를 통해 열람해보았다.

 

2022.08.05 - [개발일지/부트캠프(데이터베이스 Part)] - DB - 오라클과 이클립스(자바) 연결하기 (2022-08-04)

 

DB - 오라클과 이클립스(자바) 연결하기 (2022-08-04)

데이터베이스 2일차. 이전 게시물에 2일차까지 배운 명령어를 올려 두었다. 최대한 상세하게 설명하려고 노력했으니 참고할 분들은 참고해서 사용하길 바란다. ....쨋든 이번엔 오라클과 이클립

sukw9512.tistory.com

 

그러면? 테이블에 저장되어 있는 모든 자료를 볼 수는 없을까?

 

아래 소스코드를 보자

 

소스코드

 

 

package jdbc_concept1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class SelectAll {

	public static void main(String[] args) {
		// 데이터베이스의 모든 정보 출력하기.
		try {
			Class.forName("oracle.jdbc.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		String user = "oracle";
		String password = "oracle";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		Connection con = null;
		try {
			con = DriverManager.getConnection(url, user, password);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	
		String sql = "SELECT * FROM test"; 
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			ps = con.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()) {
				System.out.println("번호 : " + rs.getInt("num"));
				System.out.println("아이디 : " + rs.getString("id"));
				System.out.println("비밀번호 : " + rs.getString("password"));
				System.out.println("이름 : " + rs.getString("name"));
				System.out.println();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		try {
			if(rs != null) 
				rs.close();
			if(ps != null) 
				ps.close();
			if(con != null)
				con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

}

 

Connection 과 다른 점이 있다면?

.
.
.
Scanner sc = new Scanner(System.in);
		System.out.print("아이디 : ");
		String id = sc.next();
		
		String sql = "SELECT * FROM test WHERE id=?";
        
        PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			ps = con.prepareStatement(sql);
			ps.setString(1, id);
			// 실행 : SELECT
			rs = ps.executeQuery();
			if(rs.next()) {
				System.out.println("번호 : " + rs.getInt("num"));
				System.out.println("아이디 : " + rs.getString("id"));
				System.out.println("비밀번호 : " + rs.getString("password"));
				System.out.println("이름 : " + rs.getString("name"));
			}else {
				System.out.println("검색한 아이디로 정보를 확인할 수 없습니다.");
			}

 

SelectAll

 

String sql = "SELECT * FROM test"; 
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			ps = con.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()) {
				System.out.println("번호 : " + rs.getInt("num"));
				System.out.println("아이디 : " + rs.getString("id"));
				System.out.println("비밀번호 : " + rs.getString("password"));
				System.out.println("이름 : " + rs.getString("name"));
				System.out.println();
			}

sql에서 주문하는게 WHERE값을 할당하지 않았다는 점.

 

prepareStatement 를 이용하여 setString(1, id) 하여 아이디를 검색하여 정보가 나오는 if문

while문으로 바꿨다는 점.

 

 

틀린 내용이 있다면 피드백 부탁드립니다! 오늘도 감사드립니다!!!!