Java에서 PostgreSQL 데이터베이스 질의하기
Miller Trujillo
Staff Software Engineer
$$
$$


Connection conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD) conn.setAutoCommit(false);try (...) { // 여기에서 SQL 문을 실행conn.commit();} catch (SQLException e) { conn.rollback(); }
// 송금인 잔액 차감 String withdrawSQL = "UPDATE accounts SET balance = balance - ? WHERE account_id = ? AND balance >= ?";// 수취인 잔액 증가 String depositSQL = "UPDATE accounts SET balance = balance + ? WHERE account_id = ?";
$$
UPDATE - 테이블의 기존 행을 수정SET - 변경할 열 지정try (Connection conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD)) {conn.setAutoCommit(false);try { try (PreparedStatement withdrawStmt = conn.prepareStatement(withdrawSQL); PreparedStatement depositStmt = conn.prepareStatement(depositSQL)) { // 매개변수를 설정하고 두 문을 실행... }conn.commit();} catch (SQLException e) { conn.rollback(); } }
$$

PreparedStatement pstmt = conn.prepareStatement("INSERT INTO transfers (sender_id, recipient_id, amount) VALUES (?, ?, ?)")for (Object[] transfer : transfers) { pstmt.setInt(1, (Integer) transfer[0]); pstmt.setInt(2, (Integer) transfer[1]); pstmt.setInt(3, (Integer) transfer[2]);pstmt.addBatch(); // 나중에 일괄 실행 큐에 추가 }int[] results = pstmt.executeBatch(); // 한 번에 전송
Java에서 PostgreSQL 데이터베이스 질의하기