결과 집합 JDBC의 인터페이스는 SQL 쿼리에 의해 생성된 테이블 형식 데이터를 나타냅니다. 현재 행을 가리키는 커서가 있습니다. 처음에 이 커서는 첫 번째 행 앞에 위치합니다.
결과 집합 전체에서 포인터 이동
다음() ResultSet 인터페이스 메소드 현재(ResultSet) 개체의 포인터를 현재 위치에서 다음 행으로 이동합니다. 이 메서드는 부울 값을 반환하고 현재 위치 옆에 행이 없으면 false를 반환하고 그렇지 않으면 true를 반환합니다. 따라서 while 루프에서 이 방법을 사용하면 결과 집합의 내용을 반복할 수 있습니다.
while(rs.next()){ }
각 레코드의 열 값 가져오기:
ResultSet 인터페이스(또한)는 행의 각 열에서 값을 검색하는 getter 메소드(getXXX())를 제공합니다. 모든 getter 메서드에는 두 가지 변형이 있습니다.
-
getXXX(int columnIndex): 이것은 열의 인덱스를 나타내는 정수 값을 받아들이고 그 값을 반환합니다.
-
getXXX(문자열 columnLabel): 이것은 열의 이름을 나타내는 문자열 값을 받아들이고 그 값을 반환합니다.
테이블에 있는 열의 데이터 유형에 따라 각각의 getter 메소드를 사용해야 합니다.
예시
아래와 같이 내용이 있는 dataset이라는 테이블이 있다고 가정합니다.
+--------------+-----------+ | mobile_brand | unit_sale | +--------------+-----------+ | Iphone | 3000 | | Samsung | 4000 | | Nokia | 5000 | | Vivo | 1500 | | Oppo | 900 | | MI | 6400 | | MotoG | 4360 | | Lenovo | 4100 | | RedMi | 4000 | | MotoG | 4360 | | OnePlus | 6334 | +--------------+-----------+
예
다음 예는 데이터세트의 모든 레코드를 검색합니다. 테이블 및 결과 인쇄:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class RetrievingData { public static void main(String args[]) throws Exception { //Registering the Driver DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //Getting the connection String mysqlUrl = "jdbc:mysql://localhost/TestDB"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); //Creating a Statement object Statement stmt = con.createStatement(); //Retrieving the data ResultSet rs = stmt.executeQuery("select * from Dataset"); System.out.println("Contents of the table"); while(rs.next()) { System.out.print("Brand: "+rs.getString("Mobile_Brand")+", "); System.out.print("Sale: "+rs.getString("Unit_Sale")); System.out.println(""); } } }
출력
Connection established...... Contents of the table Brand: Iphone, Sale: 3000 Brand: Samsung, Sale: 4000 Brand: Nokia, Sale: 5000 Brand: Vivo, Sale: 1500 Brand: Oppo, Sale: 900 Brand: MI, Sale: 6400 Brand: MotoG, Sale: 4360 Brand: Lenovo, Sale: 4100 Brand: RedMi, Sale: 4000 Brand: MotoG, Sale: 4360 Brand: OnePlus, Sale: 6334