마케팅스프린트
[ GitHub ]

[ jungyijun@naver.com ]


  • Category
    • 마케팅 자동화
    • old posting
      • ChatGPT
      • Java
      • MySQL
      • JSP
      • Spring Framework
      • Node.js
Total
Today
Yesterday
hELLO · Designed By 정상우.
old posting/JSP

[JSP] Statement와 PreparedStatment 그리고 ResultSet

2021. 6. 5. 19:09
  • Statement
    • Connection 객체로부터 Instance화하여 만들어내며, DB에 SQL을 보내기 위한 준비작업과 실제 SQL를 실행하여 결과갑슬 주는 API를 제공한다.
    • 장점
      • 사용이 편리하다.
    • 단점
      • 디버깅이 어렵다.
      • Overhead가 많다.
      • SQL문 재사용이 어렵다.
    • Statement의 주요 메소드
      • execute()
        • 질의문(SELECT), 갱신문(INSERT, UPDATE, DELETE) 모두 사용할 수 있다.
        • 질의문의 결과(ResultSet)를 얻기 위해서는 getResultSet() 메소드를 사용해야한다.
      • executeQuery()
        • SELECT문을 DB로 넘겨 실행시키고자 할 때 사용한다.
        • ResultSet 객체를 Return하며, Argument로는 Query할 SELECT문장을 String 형태로 받는다.
      • executeUpdate()
        • INSERT, UPDATE, DELETE문 같이 DB를 갱신 할 때 사용하는 메소드이다.
        • 갱신된 행의 수를 반환한다.
          • 0보다 큰 값은 갱신된 row의 수 이다.
          • 0인 경우 수정된 row가 없다.

 

  • PreparedStatement
    • Statement를 상속받기 때문에 Statement 클래스 메소드를 전부 사용할 수 있다.
    • SQL문을 미리 만들어두고 변수를 따로 입력하는 방식으로 효율성이 좋다.
    • SQL INJECTION 공격에 방어가 가능하며 보수 측면에서 유리한 구조이다.
    • PreparedStatement의 주요 메소드
      • Statement 클래스를 상속받기 때문에 Statement 메소드와 동일하다.

 

  • ResultSet
    • 데이터베이스 결과값을 임시로 저장하는 객체이며 하나의 테이블을 저장할 수 있는 구조이며, 연결 지향적이다.
    • forward only
      • 한쪽 방향으로만 읽을 수 있으며, 1이란 데이터를 읽었으면 그다음은 2란 데이터를 읽어야하며... 이런식의 진행만 가능하다.
    • ResultSet의 주요 메소드
      • next()
        • 읽어 올 레코드가 있으면 true, 없으면 false를 반환한다.
      • previous()
        • 이전 레코드로 이동한다. (첫번째 레코드면 false를 반환한다.)
      • first()
        • 처음 위치로 이동한다. (레코드가 없을 경우 false를 반환한다.)
      • last()
        • 마지막 위치로 이동한다. (레코드가 없을 경우 false를 반환한다.)
      • getString(String columnLabel)
        • (현재 커서가 읽을 위치의) 컬럼명에 해당하는 문자열을 반환한다.
      • getInt(String columnLabel)
        • (현재 커서가 읽을 위치의) 컬럼명에 해당하는 정수값 반환한다.
      • getString(columnIndex)
        • 컬럼 인덱스에 해당하는 문자열을 반환한다. (index는 1부터 시작한다.)
      • getInt(columnIndex)
        • 컬럼 인덱스에 해당하는 정수값을 반환한다. (Index는 1부터 시작한다.)
저작자표시 (새창열림)
'old posting/JSP' 카테고리의 다른 글
  • [JSP]커넥션 풀(Connection Pool)
  • [JSP] 자바 빈(bean)
  • [JSP] 웹어플리케이션에서의 예외처리란
  • [JSP] 세션 (Session) 그리고 세션(Session)과 쿠키(Cookie)의 차이점
마케팅스프린트
마케팅스프린트
쿠팡, 스마트스토어 자동화 솔루션

티스토리툴바