Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

JDBC에서 결과란? ResultSet 개체에서 데이터를 검색하는 방법은 무엇입니까?

<시간/>

결과 집합 JDBC의 인터페이스는 SQL 쿼리에 의해 생성된 테이블 형식 데이터를 나타냅니다. 현재 행을 가리키는 커서가 있습니다. 처음에 이 커서는 첫 번째 행 앞에 위치합니다.

JDBC에서 결과란? ResultSet 개체에서 데이터를 검색하는 방법은 무엇입니까?

결과 집합 전체에서 포인터 이동

다음() 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