[Java] Statement와 PreparedStatement

2023. 3. 12. 16:34·Java/Base
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
'Java/Base' 카테고리의 다른 글
  • [Java] Gson 클래스를 활용한 JSON Phasing
  • [Java] JSON
  • [Java] Java로 SQL CRUD 구현하기
  • [Java] Java와 MySQL 데이터베이스 연결하기
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (384)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • etc. (13)
      • Error Note (16)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    vuejs
    오블완
    jQuery
    zapier
    Hotkeys
    java
    http
    js
    tailwindcss
    php
    SpringBoot
    C#
    errorNote
    SEO
    SWAGGER
    티스토리챌린지
    CSS
    Android
    cs
    HTML
    Wordpress
    Swing
    개발일지
    jsp
    SQL
    Codeigniter
    git
    면접
    typeScript
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[Java] Statement와 PreparedStatement
상단으로

티스토리툴바