JDBC : select

ROK·2022년 8월 16일
0

JDBC

목록 보기
4/4

지금까지 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
하루에 집중하자

0개의 댓글