Loading...

JAVA / / 2022. 2. 17. 20:16

자바 66강. 자바 DB 연동 INSERT, UPDATE, DELETE

반응형

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

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com


메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형