JSP - JDBC 활용순서 (예시코드 있음)

2023. 8. 11. 01:47·JSP
728x90
반응형
SMALL

 

해당 자료를 통한 2차 창작 시 댓글 달아주세요!

 

 

🟰JDBC(Java Database Connecity)

☀️DB와 연결하여 데이터를 주고받을 수 있도록 하는 인터페이스
☀️여러 종류의 DB에 접속하여 SQL문을 수행한 결과를 가져오기 위해 사용
☀️JDBC 드라이버를 통해 연결한다.
☀️DB에서 쿼리문 결과를 가져올때마다 Connection을 해야 하는 단점이 있다.

⏬JDBC활용 코드
☀️class.forName을 통해 해당 드라이버를 로드합니다.
☀️Connector 인터페이스를 통해 드라이버 및 DB에 접속을 수행합니다.
☀️Prestatement 인터페이스로 해당 SQL을 적재합니다.(Prestatement는 Statement의 서브클래스입니다.)
☀️Resultset 인터페이스로 해당 SQL을 수행하고 결과를 담습니다.
☀️rs.next()를 반복문을 통해 rs의 다음 내용이 없을때까지 반복문을 돌려 dto객체에 담아 줍니다.
☀️arraylist에는 dto객체가 데이터에서 가져온 개수만큼 담겨있습니다.
package ex04;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

public class MelonDAO {
	
	private Connection conn;
	private PreparedStatement pstmt;
	private ResultSet rs;
	
	private String url = "jdbc:oracle:thin:@ip주소:포트번호:연결방식";
	private String user = "DB아이디";
	private String password = "DB비밀번호";
	
	private String driverClassName = "oracle.jdbc.driver.OracleDriver";
	
	public MelonDAO() {
		try {
			Class.forName(driverClassName);
			}catch (Exception e) {
				System.out.println("연결 잘못됨");
		}
	}
	
	public ArrayList<MelonDTO> selectAll() {
		ArrayList<MelonDTO> list =new ArrayList<MelonDTO>();
		String sql = "select * from melon order by ranking asc";
		try {
			conn = DriverManager.getConnection(url,user,password);
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			
			while(rs.next()) {
				MelonDTO dto = new MelonDTO(
						//rs.메서드("동일한이름")
						rs.getInt(1), 
						rs.getString(2), 
						rs.getString(3),
						rs.getString(4),
						rs.getInt(5)
						);
				
				list.add(dto);
			}
			
		}catch (Exception e) {
		}finally {
			try {
			rs.close();
			pstmt.close();
			conn.close();
			}catch (Exception e) {
			}
		}	
		return list;
		
	}
	
	
}​


🟰Prestatement를 사용하는 이유

☀️SQL인젝션의 공격을 막고자 사용
☀️반복적인 쿼리를 수행할 경우 Statement보다 PreStatement가 캐시를 적게 사용한다.


🟰Statement와 PreStatement의 차이
☀️Statement : SQL문을 실행할 때마다 SQL문장을 분석하고 컴파일해서 실행한다.
☀️PreStatement: 처음 한 번만 분석/컴파일 단계를 거치고 캐시에 담아 재사용한다.

🟰ExecuteQuery와 ExecuteUpdate의 사용유무
☀️ExecuteQuery : 주로 select문을 수행시 사용된다.
☀️ExecuteUpdate : insert, delete, update 구문을 수행시 사용한다. 


⭐⭐가장 중요한 close()
☀️close는 가장 나중에 호출한 rs / pstmt / conn 순으로 close해준다.
☀️close하지 않은 경우 해당 Connection은 계속 연결중이게 되고 다른 클라이언트가 접속할 수 없다.

 

728x90
반응형
SMALL

'JSP' 카테고리의 다른 글

JSP - Servlet 각 내장객체별 범위(Scope)  (136) 2023.08.18
JSP - web.xml 의 index파일이 가장 먼저 출력되는 이유(예시 포함)  (24) 2023.08.11
JSP - JSP-JSTL ( <C:forEach>, core 태그 사용하기) 예시1  (0) 2023.08.10
JSP-JSTL ( <C:set>, core 태그 사용하기)2  (0) 2023.08.09
JSP-JSTL ( <C:set>, core 태그 사용하기)  (0) 2023.08.08
'JSP' 카테고리의 다른 글
  • JSP - Servlet 각 내장객체별 범위(Scope)
  • JSP - web.xml 의 index파일이 가장 먼저 출력되는 이유(예시 포함)
  • JSP - JSP-JSTL ( <C:forEach>, core 태그 사용하기) 예시1
  • JSP-JSTL ( <C:set>, core 태그 사용하기)2
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (325)
      • 면접 준비 (22)
        • OS (6)
        • Spring Security (0)
        • Java (3)
        • DB (11)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      Springframework
      자바 면접
      백준
      자바
      springsecurity
      자바 알고리즘
      Til
      redis
      HTML
      자바 면접질문
      자바기초
      JSP
      프로그래머스
      리눅스마스터2급정리
      jsp request
      JavaScript
      Spring Data Redis
      리눅스
      자바스크립트
      리눅스마스터2급
      레디스
      CSS
      java
      자바 반복문
      JS
      Spring
      redis 채팅
      스프링프레임워크
      jsp기초
      spring redis
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    JSP - JDBC 활용순서 (예시코드 있음)

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.