ResultSet

jipyo park·2022년 7월 1일
0

java database

목록 보기
2/2

ResultSet?

ResultSet은 statement.excuteQuery(sql)을 통해 실행되서 나온 Select결과를 저장하는 객체

사용법

Table

idpasswordnickName
adminpassadmin
helloworldnickName
    public static void main(String[] args) {
        try {
            String url = "jdbc:mariadb:://localhost:3306/test";
            DriverManager.registerDriver(new org.mariadb.jdbc.Driver());
            DriverManager.getDriver(url);

            Connection con = DriverManager.getConnection(url, "id", "password");
            Statement stmt = con.createStatement();

            ResultSet res = stmt.executeQuery("SELECT * FROM table_name");
            
            while (res.next()) {
                System.out.print(res.getString(1) + "\t");
                System.out.print(res.getString(2) + "\t");
                System.out.print(res.getString(3) + "\n");
            }
        }
        catch (SQLException e) {
            e.printStackTrace();
        }

    }
# 출력
admin	pass	admin
hello	world	nickName

next()

next()는 2가지 일을 하는 데
1.다음 Column데이터가 존재하는 지 확인하여 결과를 반환

  • 다음 row가 있으면 true
  • 다음 row가 없으면 false
  1. Column 커서 체인지
  • 다음 데이터가 존재할 때 Column 커서를 내려서 Column에 접근할 수 있게 해준다.
idpasswordnickName
adminpassadmin
helloworldnickName

굳이 말하자면 맨처음 커서는 Header쪽에 즉, 도메인에 커서가 가있는 모습이다.
그래서 만약 res.next()를 안하고 접근을 하게 되면

java.sql.SQLDataException: wrong row position

예외를 터트리게 된다.

getMethod

getMethod
getInt
getString
getBoolean
getDate
getDouble
getFloat
getDate
getLong
getTime
getTimestamp
getRowId
..등등..

인자 값 차이

int : index(int)를 기준으로 Data를 가져옴, index번호는 1부터 시작
String : Column의 이름(String)을 기준으로 Data가져옴

참고

0개의 댓글