728x90
728x90
- 문자열들을 SQL로 변경하거나, SQL 문을 실행시켜주는 인터페이스
- SQL 문 실행 시
· SELECT 문은 executeQuery 메서드 사용 → ResultSet(결과 집합) 반환
· DML 문은 executeUpdate 메서드 사용 → int(변경이 적용된 레코드 수) 반환
- DB와 Java 연동 코드 : https://young0105.tistory.com/126
Statement
// 쿼리문 작성 (마지막에 공백을 하나 입력해야 오류 위험 감소)
String sqlFormat = "SELECT * FROM 테이블명 WHERE 컬럼명1 = '%S' ";
String sql = String.format(sqlFormat, targetValue));
// conn : Connection 객체
Statment stmt = conn.createStatement();
ResultSet rs = stmt.executeUpdate(sql); // String SQL문을 매개변수로 받음
// executeQuery는 ResultSet(결과 집합)을 반환함
// 결과 집합의 각 레코드를 DTO 객체에 하나씩 할당할 수 있음
PreparedStatement
// 쿼리문 작성 (마지막에 공백을 하나 입력해야 오류 위험 감소)
String sql = "SELECT * FROM 테이블명 WHERE 컬럼명1 = ? "; // 작은따옴표 생략 가능
// conn : Connection 객체
PreparedStatement pstmt = conn.prepareStatement(sql);
// pstmt.setString(순서, 넣을_값); :: 인덱스 X, 1부터 시작
pstmt.setString(1, targetValue); // 첫 번째 ? 자리에 넣음
ResultSet rs = pstmt.executeQuery(); // 매개변수 없이 실행
// executeQuery는 ResultSet(결과 집합)을 반환함
// 결과 집합의 각 레코드를 DTO 객체에 하나씩 할당할 수 있음
- PreparedStatement는 객체를 캐시에 담아 재사용함
→ 반복적으로 쿼리를 수행할 경우, Statement보다 성능이 좋음
320x100
반응형
'Java > Base' 카테고리의 다른 글
[Java] Gson 클래스를 활용한 JSON Phasing (0) | 2023.03.15 |
---|---|
[Java] JSON (0) | 2023.03.15 |
[Java] Java로 SQL CRUD 구현하기 (0) | 2023.03.09 |
[Java] Java와 MySQL 데이터베이스 연결하기 (0) | 2023.03.09 |
[Java] 소켓 양방향 통신 구현 (0) | 2023.03.04 |