[JAVA] 자바 - JDBC PreparedStatement 인터페이스
by mini_min[JAVA]
자바 - JDBC PreparedStatement 인터페이스
✔️ PreparedStatement 란?
: Statement 하위 인터페이스로 프리 컴파일된 SQL 문을 나타내는 객체다.
: 프리 컴파일 (전처리) 한 SQL 문을 PreparedStatement 객체에 저장함
: "?" : IN 매개 변수를 하나 이상 가진다!
: "?" 매개 변수 값을 설정하는 setter 메소드가 필요하다.
⭐ 반복되는 SQL 문을 실행할 때 속도가 빨라서 효율적이다.
📓 실행방법
1) 실행할 sql 쿼리문 작성
2) PreparedStatement 메소드 호출하여 객체 생성, IN 파라미터를 setter 이용해 설정
3) 쿼리를 실행한다.
❌ executeUpdate() 메소드 실행하며 메소드에 쿼리 추가 안함!
try {
sql = "INSERT INTO score(hak, name, birth, kor, eng, mat)
VALUES (?, ?, ?, ?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, dto.getHak());
pstmt.setString(2, dto.getName());
pstmt.setString(3, dto.getBirth());
pstmt.setInt(4, dto.getKor());
pstmt.setInt(5, dto.getEng());
pstmt.setInt(6, dto.getMat());
result = pstmt.executeUpdate();
try {
sql = "DELETE FROM score WHERE hak = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, hak);
result = pstmt.executeUpdate();
🔒 문제
-- 두 테이블에 동시에 데이터 넣기
(다중 테이블 insert)
sql = "INSERT ALL INTO member1(id, pwd, name) VALUES(?, ?, ?)"
+ " INTO member2(id, birth, email, tel) VALUES(?, ?, ?, ?)"
+ " SELECT * FROM dual";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, dto.getId());
pstmt.setString(2, dto.getPwd());
pstmt.setString(3, dto.getName());
pstmt.setString(4, dto.getId());
pstmt.setString(5, dto.getBirth());
pstmt.setString(6, dto.getEmail());
pstmt.setString(7, dto.getTel());
result = pstmt.executeUpdate();
-- 다중 테이블 SELECT (조회하기)
조인 조건을 줘야 필요한 데이터만 쏙쏙 골라서 조회할 수 있다.
sql = "SELECT member1.id, pwd, name, birth, email, tel "
+ " FROM member1 "
+ " JOIN member2 ON member1.id = member2.id "
+ " WHERE member1.id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
'Java' 카테고리의 다른 글
[JAVA] 자바 - 트랜잭션(Transaction) (0) | 2022.08.24 |
---|---|
[JAVA] 자바 - JDBC CallableStatement 인터페이스 (0) | 2022.08.24 |
[JAVA] 자바 - JDBC Statement (SELECT 문 / executeQuery / ResultSet) (0) | 2022.08.21 |
[JAVA] 자바 - JDBC (Statement / createStatement / executeUpdate) (0) | 2022.08.21 |
[JAVA] 자바 - JDBC (Java Database Connectivity) (Connection, DriverManager) (0) | 2022.08.21 |
블로그의 정보
개발자 미니민의 개발로그
mini_min