서블릿에서 JDBC로 MariaDB 연동 방법 및 예제 코드

서블릿에서 JDBC로 MariaDB 연동 방법 및 예제 코드

서블릿과 데이터베이스를 연동하면 클라이언트 요청에 따라 동적인 데이터를 처리할 수 있습니다. 이번 글에서는 서블릿에서 JDBC를 사용하여 MariaDB와 연결하고, 데이터베이스에서 데이터를 조회하는 기본적인 방법에 대해 알아보겠습니다.

1. JDBC 드라이버 설정

서블릿에서 JDBC를 사용하려면 먼저 JDBC 드라이버를 설정해야 합니다. MariaDB를 사용한다면 mariadb-java-client-X.X.X.jar 파일을 프로젝트의 WEB-INF/lib 폴더에 추가해야 합니다. 이 파일이 포함되어 있지 않으면 데이터베이스 연결 시 No suitable driver found 오류가 발생할 수 있습니다.

JDBC 드라이버 설정 방법

다운로드한 .jar 파일을 프로젝트의 WEB-INF/lib 폴더에 복사

2. JDBC 연동 예제 코드

다음은 서블릿에서 JDBC를 사용하여 MariaDB와 연결한 후, 사용자 목록을 조회하는 예제 코드입니다.

package com.bluesharehub;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

@WebServlet("/jdbcExample")
public class JDBCExampleServlet extends HttpServlet {
    private static final String DB_URL = "jdbc:mariadb://localhost:3306/school";
    private static final String DB_USER = "blueshare";
    private static final String DB_PASSWORD = "1234";

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        // JDBC 드라이버 명시적 로드
        try {
            Class.forName("org.mariadb.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        try (PrintWriter out = response.getWriter();
             Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
             PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users");
             ResultSet rs = stmt.executeQuery()) {

            out.println("<h1>사용자 목록</h1>");
            out.println("<ul>");
            while (rs.next()) {
                out.println("<li>" + rs.getString("username") + "</li>");
            }
            out.println("</ul>");

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

코드 설명

  1. Class.forName(“org.mariadb.jdbc.Driver”): JDBC 드라이버를 명시적으로 로드하여 MariaDB와의 연결을 설정할 수 있습니다.
  2. 데이터베이스 연결: DriverManager.getConnection()을 사용하여 데이터베이스에 연결합니다.
  3. SQL 쿼리 실행: PreparedStatement를 사용하여 SQL 쿼리를 실행합니다.
  4. 결과 처리: ResultSet을 사용하여 쿼리 결과를 순회하며 데이터를 출력합니다.
  5. 자원 해제: try-with-resources 구문을 사용하여 Connection, PreparedStatement, ResultSet을 자동으로 해제합니다.

실행 결과

JDBC 연동 예제 코드 실행 결과 화면

☞ 이와 같은 방식으로 서블릿과 JDBC를 사용하여 다양한 데이터베이스 작업을 처리할 수 있습니다. 다음 단계로 커넥션 풀을 설정하여 더 효율적으로 데이터베이스 연결을 관리하는 방법에 대해 알아보겠습니다.

함께 보면 좋은 이전 게시글

위로 스크롤