public class BankApp {
public static void main(String[] args) {
Connection conn = DBConnection.getInstance();
try {
String insert = "insert into account_tb(password,balance,created_at) values(?,?,now())";
String update = "update account_tb set balance = balance + ? where number = ?";
String delete = "delete from account_tb where number = ?";
PreparedStatement pstmt = conn.prepareStatement(delete);
int num = pstmt.executeUpdate();
System.out.println(num);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
위와 같은 코드를 만들었다. 코드처럼 미리 쿼리문을 작성해놓고 prepareStatement() 에 원하는 값을 넣어서 사용할 수 있다.
account_tb 테이블을 가지고 실행한다. 테이블과 관련된 내용은 이전 블로그를 참조하면 된다.
1. Delete문
DELETE FROM 테이블명 WHERE 원하는값=?
delete from account_tb where number = ?
PreparedStatement pstmt = conn.prepareStatement(delete);
pstmt.setInt(1,1);
(1,1) 에서 첫 번째 1은 원하는 변수 ? 의 위치이다. 두번째 1은 선택할 데이터이다.
코드에서는 ? 가 1개 밖에 없기 때문에 number 이고, number 값이 1인 데이터가 삭제된다.

heidiSQL 실행 시 number 1 이 삭제됐다.
2. Insert문
INSERT INTO 테이블명 (column1, column2, column3, ...) VALUES (?, ?, ?, ...)")
insert into account_tb(password,balance,created_at) values(?,?,now())
PreparedStatement pstmt = conn.prepareStatement(insert);
pstmt.setString(1,"0987");
pstmt.setInt(2,3000);
첫번째 ?는 문자열 password 에 0987 을 입력하고, 두번째 ? 는 정수 3000을 입력한다.

데이터가 추가되었다.
3. Update문
UPDATE 테이블명 SET column1 = 'new_value1', column2 = 'new_value2' WHERE 원하는값=?
update account_tb set balance = balance + ? where number = ?
PreparedStatement pstmt = conn.prepareStatement(update);
pstmt.setInt(1,5000);
pstmt.setInt(2,2);
첫번째 ? 는 5000을 현재의 balance 에 합산하고, 두번째 ? 는 2번을 업데이트 한다는 뜻이다.

number 2 값이 변경되었다.
Share article