스터디 모음/Web 스터디

Servlet과 JDBC

always-dev 2022. 8. 8.
반응형

 

 

 

개요

전에 배운 서블릿 (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이 넘어 오는데 이 안에 데이터가 있습니다.

반응형

댓글