개요
전에 배운 서블릿 (Servlet)을 이용해서 클라이언트가 요청한 데이터를 다뤄보려고 합니다.
아주 기초적인 부분이고 너무 쉬운 구간입니다.
하지만 이러한 기반이 잘 잡혀 계속 생각을 하고 있어야 나중에 성장하는데 무리가 없음에 분명합니다.
Servlet에 JDBC를 이용한 JSP 프로그래밍 프로젝트를 여러번 해왔지만
프로젝트를 완성 시키는게 목표가 아닌 기초적인 “웹"을 공부하는데에 목표를 두겠습니다.
서블릿이 하던 일
서블릿이 무슨 일을 했었을까요?
HTTP 프로토콜을 준수하며 클라이언트-서버가 통신하기 위한 일정한 규칙을 구현하는데에 편리함을 주는 역할이었습니다.
간단하게 말하면
클라이언트가 요청한 데이터를 다루는 일을 해줍니다.
저희는 이러한 서블릿을 가지고 데이터베이스에 접근할 수 있도록 해보려합니다.
데이터베이스에 접근하기 위한 준비물
클라이언트가 서버에 회원 목록 데이터를 요청했습니다.
이 요청은 서블릿이 받았습니다.
클라이언트의 요청을 받은 서블릿은 service() 메서드를 호출하고 해당 로직을 돌려 회원 목록 데이터를 클라이언트에게 응답해줍니다.
이 때 service() 메서드에서 어떤 작업을 하면 외부에 있는 데이터베이스에 접근할 수 있을까요 ?
자바의 JDBC 기술
자바는 데이터베이스와의 통신을 위해 JDBC (Java DataBase Connectivity)를 제공하고 있습니다.
데이터를 정의, 조작할 수 있는 명령어 SQL
해당 데이터베이스에 접근해서 SQL (Structured Query Language)이라는 표준 명령어를 사용하면 데이터를 정의, 조작 할 수 있습니다.
이제 개발자는 두 기술(JDBC, SQL)를 가지고 데이터베이스에 접근해서 데이터를 정의, 조작할 수 있게 됐습니다.
전에 클라이언트가 요청한 회원 목록 데이터를 전달할 수 있게 되었죠.
데이터베이스 접근해서 데이터 가져오기
먼저 저희는 요청 처리를 위해 Servlet을 구현합니다.
java.sql.Driver 인터페이스의 구현체
이제 JDBC 프로그래밍을 위해서 Driver 인터페이스에 구현체를 등록해줘야 합니다.
즉, 사용할 드라이버를 결정하는 것입니다.
그 일을 위해서는 DriverManager를 이용합니다.
DriverManager 클래스 내의 메서드인 registerDriver로 드라이버를 등록해줍니다.
java.sql.Connection 인터페이스의 구현체
Connection은 DB 접속 정보를 다루는 객체입니다.
DriverManger에 getConnection 메서드로 JDBC url, DBMS id pw 를 입력하면 Connection 객체를 반환합니다.
이제 SQL을 실행할 객체를 얻엇습니다.
java.sql.Statement 인터페이스의 구현체
Statement 인터페이스에는 데이터베이스 질의하는데 필요한 메서드가 정의되어 있습니다.
만약 executeQuery()를 하면 select 문을 실행하게 되는데 이 때 반환하는 객체는 java.sql.ResultSet의 구현체 입니다.
java.sql.ResultSet 인터페이스의 구현체
이 구현체를 이용하면 서버에서 만들어진 결과를 가져올 수 있습니다.
즉, DriverManager로 사용할 드라이버를 등록하고 접속 정보를 등록하여 Driver 인터페이스의 구현체를 만듭니다
그 구현체는 Connection입니다.
이 Connection으로 Statement를 만들고 데이터베이스에 질의하면 ResultSet이 넘어 오는데 이 안에 데이터가 있습니다.
'스터디 모음 > Web 스터디' 카테고리의 다른 글
[Web] 서블릿 필터 - 서블릿 실행 전, 후에 특별한 작업 수행하기 (javax.servlet.Filter) (0) | 2022.08.11 |
---|---|
[Web] 서블릿 초기화 매개변수와 컨텍스트 초기화 매개변수 (0) | 2022.08.11 |
댓글