JDBC : select

ROK·2022년 8월 16일
0

JDBC

목록 보기
4/4
post-custom-banner

지금까지 JDBC를 배우며 SELECT, INSERT를 확인해봤다.

앞에는 단순히 쿼리를 입력하고 결과를 DB에서 확인하는 했지만, 이번엔 JDBC를 통해 데이터베이스를 조회하는 것을 해보려고 한다.

JDBC를 통해 DB를 조회하기 위해서 select 쿼리를 사용하면서 그 결과값을 ResultSet 타입으로 입력받아, 데이터를 메서드로 추출하는 과정을 진행해본다.

	public void selectTable(String tbName) throws SQLException {
		String sql = "select * from " + tbName;

		Connection conn = ConnectionManager.getConnection();
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs = pstmt.executeQuery();

		int no = 0;
		String name = "";
		String manufacturing = "";
		int price = 0;

		while (rs.next()) {
			no = rs.getInt(1);
			name = rs.getString(2);
			manufacturing = rs.getString(3);
			price = rs.getInt(4);

			System.out.println("No : " + no + " / " + "name : " + name + " / " + "manufacturing : " + manufacturing
					+ " / " + "price : " + price);

			
		}
        rs.close();
		pstmt.close();
		conn.close();
	}
    
    
/* 결과값
Connected...
No : 1 / name : Iphone 13 / manufacturing : Apple / price : 720
DB 출력 성공
*/

앞에서 preparestatement를 사용할 때는 쿼리의 value 값에 ?(바인드 변수)를 사용했지만 테이블에서는 사용할 수 없다.

  • 바인드 변수는 컬럼의 값을 대체
  • 바인드 변수는 테이블의 값에는 사용 불가

따라서, "select * from " + tbName;과 같이 문자열 결합 형으로 사용해야 한다.

그리고 쿼리의 결과값(불러온 테이블)은 ResultSet 변수 rs에 저장된다. 여기서 rs에 저장되는 단위는 레코드(한 행)단위로 저장되기 때문에 불러올때도 next()를 사용해 한 행씩 불러온다.

마지막에 Get자료형에서 매개변수에 컬럼의 순서를 넣어줬지만 이름을 넣어줄 수도 있다.

no = rs.getInt(1);
name = rs.getString(2);
manufacturing = rs.getString(3);
price = rs.getInt(4);

////////////////////////////////////

no = rs.getInt("no");
name = rs.getString("name");
manufacturing = rs.getString("manufacturing");
price = rs.getInt("price");


// 위 두 코드의 결과값은 같다.
profile
하루에 집중하자
post-custom-banner

0개의 댓글