※ JDBC API에서 제공하는 메서드
-> execute(), executeQuery(), executeUpdate() 메서드는 JDBC API에서 제공하는 메서드로,
데이터베이스와 상호작용하는 데 사용된다. 회원 가입, 회원 정보 수정, 비밀번호 변경, 회회 탈퇴등 DB와 연결하여
기능을 만들경우 DAO에서 사용하는데 그 차이점에 대해서 공부하고자 한다.
1.execute
1) 수행결과로 Boolean 타입의 값을 반환합니다.
2) 모든 구문을 수행할 수 있습니다.
3) execute 함수를 사용하는 방법입니다.
-> 리턴값이 ResultSet 일 경우에는 true, 이 외의 경우에는 false로 출력됩니다.
-> 리턴값이 ResultSet 이라고 하여 ResultSet 객체에 결괏값을 담을 수 없습니다.
※ execute예제
PreparedStatement pstmt = con.prepareStatement("INSERT INTO SAMPLE_TABLE VALUES (?, ?)");
pstmt.setInt(1, 200);
pstmt.setString(2, "Jerry");
boolean result = pstmt.execute();
System.out.println("Result : " + result);
-> Result : false
pstmt = con.prepareStatement("SELECT ID, NAME FROM SAMPLE_TABLE");
boolean result2 = pstmt.execute();
System.out.println("Result2 : " + result2);
-> Result : true
* 반환 타입으로 boolean 타입을 사용하지 않는 경우 다음과 같은 메세지가 출력됩니다.
error: incompatible types: boolean cannot be converted to ResultSet
2. executeQuery
1) 수행결과로 ResultSet 객체의 값을 반환합니다.
2) SELECT 구문을 수행할 때 사용되는 함수입니다.
3) executeQuery 함수를 사용하는 방법입니다.
-> ResultSet 객체에 결과값을 담을 수 있습니다.
4) ResultSet 객체에서 현재 행에서 필드명 혹은 레코드셋에서의 위치를 통해서 어떤 필드의 값을 가져올 수 있는데,
이때 getXxx() 메소드를 제공한다.
-> 해당 필드의 데이터 타입이 문자열이면 getString()이 되고, 해당 필드의 데이터 타입이 int이면 getInt()가 된다.
※ executeQuery 예제
pstmt = con.prepareStatement("SELECT ID, NAME FROM SAMPLE_TABLE");
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
System.out.println("ID = " + rs.getInt(1) + ", NAME = " + rs.getString(2));
}
-> ID = 100, NAME = Jerry
3. executeUpdate
1) 수행결과로 Int 타입의 값을 반환합니다.
2) SELECT 구문을 제외한 다른 구문을 수행할 때 사용되는 함수입니다.
3) executeUpdate 함수를 사용하는 방법입니다.
-> INSERT / DELETE / UPDATE 관련 구문에서는 반영된 레코드의 건수를 반환합니다.
-> CREATE / DROP 관련 구문에서는 -1 을 반환합니다.
※ executeUpdate 예제
pstmt = con.prepareStatement("CREATE TABLE SAMPLE_TABLE ( ID INTEGER, NAME CHAR(20) )");
int ret = pstmt.executeUpdate();
System.out.println("Return : " + ret);
-> return : -1
pstmt = con.prepareStatement("UPDATE SAMPLE_TABLE SET NAME=? WHERE ID = ?");
pstmt.setString(1, "Park");
pstmt.setInt(2, 100);
int ret = pstmt.executeUpdate();
System.out.println("Return : " + ret );
-> return : 2
'국비교육' 카테고리의 다른 글
국비지원 72일차 (스프링_MyBatis(환경설정, 연결 )) (1) | 2023.11.04 |
---|---|
국비지원 71일차 (스프링-TDD, DAO, DAO 메서드 예외처리) (1) | 2023.11.03 |
국비지원 69일차 (스프링 - DB연결하기) (0) | 2023.10.31 |
국비지원 68일차(스프링 - cookie,session ) (1) | 2023.10.30 |
국비지원 67일차(스프링 - (GET,POST),(mapping),(forward,redirect) ) (1) | 2023.10.29 |