JAVA
자바 66강. 자바 DB 연동 INSERT, UPDATE, DELETE
JJJAEOoni
2022. 2. 17. 20:16
반응형
executeQuery( )는 SELECT 쿼리를 할 때만 사용한다.
ResultSet rs = pstmt.executeQuery();
INSERT, UPDATE, DELETE는 executeUpdate( ) 사용한다.
ResultSet rs = pstmt.executeUpdate(); // INSERT, UPDATE, DELETE
executeUpdate( )는
int를 리턴한다.
위에 주석을 읽어보니
수정된 행(row)의 개수를 리턴해주는 것이다.
에러 : -1
성공 : row 개수
아무 변화 없으면 : 0
ex) DELETE -> 7번 ID
없는 값이므로 아무런 변화 없음 : 0
ex) DELETE -> 6번 ID
1행 삭제 : 1
ex) DELETE -> 조건 없음
전체 행 삭제 : 6
결국 0보다 크면 성공인 것이다.
또한 executeUpdate는
내부에 COMMIT이 존재한다.
executeQuery와의 차이이다.
package site.metacoding.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
// INSERT
public class DBEx06 {
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "SCOTT", "TIGER");
System.out.println("DB 연결완료");
String sql = "INSERT INTO userTbl(id, username, password, gender) VALUES(?, ?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 7); // 물음표 순서, 값
pstmt.setString(2, "there");
pstmt.setString(3, "1234");
pstmt.setString(4, "남");
// executeUpdate는 내부에 COMMIT이 존재한다.
int result = pstmt.executeUpdate(); // INSERT, UPDATE, DELETE
if (result > 0) {
System.out.println("성공"); // 1
} else {
System.out.println("실패"); // 0
}
} catch (Exception e) { // -1 실패하면 if를 타지않고 바로 catch를 탄다.
e.printStackTrace();
}
}
}
package site.metacoding.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
// DELETE
public class DBEx07 {
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "SCOTT", "TIGER");
System.out.println("DB 연결완료");
String sql = "DELETE FROM userTbl WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 6); // 물음표 순서, 값
int result = pstmt.executeUpdate(); // INSERT, UPDATE, DELETE
if (result > 0) {
System.out.println("성공"); // 1
} else {
System.out.println("실패"); // 0
}
} catch (Exception e) { // -1 실패하면 if를 타지않고 바로 catch를 탄다.
e.printStackTrace();
}
}
}
package site.metacoding.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
// UPDATE
public class DBEx08 {
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "SCOTT", "TIGER");
System.out.println("DB 연결완료");
// id 1의 username을 coding으로 변경
String sql = "UPDATE userTbl SET username = ? WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "coding"); // 물음표 순서, 값
pstmt.setInt(2, 1);
int result = pstmt.executeUpdate(); // INSERT, UPDATE, DELETE
if (result > 0) {
System.out.println("성공"); // 1
} else {
System.out.println("실패"); // 0
}
} catch (Exception e) { // -1 실패하면 if를 타지않고 바로 catch를 탄다.
e.printStackTrace();
}
}
}
[출처]
https://cafe.naver.com/metacoding
메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9
반응형