ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JDBC 조건을 추가하여 출력하기
    JDBC 2022. 1. 31. 17:20

     

    **유튜브 뉴렉쳐님의 강의를 들으면서 공부하고 정리한 내용입니다.

     

     

    		String url = "jdbc:oracle:thin:@localhost:1521/xepdb1";
    		String sql = "SELECT * FROM NOTICE WHERE HIT >=10";
    		
    		Class.forName("oracle.jdbc.driver.OracleDriver");
    		Connection con = DriverManager.getConnection(url,"sys as sysdba", "Ew170916!!");
    		Statement st = con. createStatement();
    		ResultSet rs = st.executeQuery(sql);
    		
    		
    		while(rs.next()) { //다음으로 넘어가기
    			
    				int id = rs.getInt("ID");
    				String title = rs.getString("TITLE");//title이라는 컬럼명을 조회
    				String writerid = rs.getString("WRITER_ID");
    				Date regDate = rs.getDate("REGDATE");
    				String content = rs.getString("CONTENT");
    				int hit = rs.getInt("HIT");
    		//System.out.println(title); //제대로 가져와지는지 출력문으로 확인해보기
    		System.out.printf("id:%d, title:%s, writerid:%s,regDate:%s,content:%s,hit:%d\n"
    							,id,title,writerid,regDate,content,hit);
    		}
    		rs.close();
    		st.close();
    		con.close();
    	}
    
    }​

    이러한 코드를 작성해서 우리는 입력된 데이터를 모두 출력 할 수 있었다.

     

    여기에 이제 조건을 추가해서 특정 조건에 해당하는 레코드만 출력 하게 해보자.

     

    조회수가 10 이상인것만 출력하고자 했을 떄

     

    출력문 위에 if문을 사용해서 if(hit > 10)  코드를 작성해도 우리가 원하는 결과가 나오지만 

     

    여기서는 sql문에 where절을 작성해주는것이 더 바람직하다.

     

    왜냐하면 만약 컬럼이 1억개가 있고 내가 원하는 결과는 그 안에 두개밖에 없다고 가정해보자.

    시퀀스 서버에서 조건문이 안들어간다면 시퀀스 서버에서는 1억개의 데이터를 전부 가져 올 것이고 그럼 그때부터 IF문으로 조회를 해서 1억개를 다 조사 후에 단 두개만을 반환하게 되는 것이다.

     

    데이터가 계속해서 쌓인다고 하면 더욱더 비효율적이게 된다.

     

    그래서 조건은 시퀀스문에 넣어주는것이 바람직한것이다. 

    		
    		String url = "jdbc:oracle:thin:@localhost:1521/xepdb1";
    		String sql = "SELECT * FROM NOTICE";
    		
    		Class.forName("oracle.jdbc.driver.OracleDriver");
    		Connection con = DriverManager.getConnection(url,"sys as sysdba", "Ew170916!!");
    		Statement st = con. createStatement();
    		ResultSet rs = st.executeQuery(sql);
    		
    		
    		while(rs.next()) { //다음으로 넘어가기
    			
    				int id = rs.getInt("ID");
    				String title = rs.getString("TITLE");//title이라는 컬럼명을 조회
    				String writerid = rs.getString("WRITER_ID");
    				Date regDate = rs.getDate("REGDATE");
    				String content = rs.getString("CONTENT");
    				int hit = rs.getInt("HIT");
    		//System.out.println(title); //제대로 가져와지는지 출력문으로 확인해보기
    		System.out.printf("id:%d, title:%s, writerid:%s,regDate:%s,content:%s,hit:%d\n"
    							,id,title,writerid,regDate,content,hit);
    		}
    		rs.close();
    		st.close();
    		con.close();
    	}
    
    }

     

    이렇게 코드 두번째 줄 부분에 sql문에다가 where절을 이용해서 원하는 조건을 넣고 출력 하게 되면 

    이렇게 조회수 10 이상인 것들만 출력 되는 것을 확인할수있다.

Designed by Tistory.