#Docker#Database#MariaDB#Tomcat
WAS(Web Application Server)와 DB 연결
Docker 컨테이너를 활용한 3-Tier 아키텍처 구성 및 연결 방법
Docker 컨테이너 환경에서 Tomcat과 MariaDB를 연결해 데이터를 조회하는 과정
3-Tier 아키텍처의 세팅부터 확인까지의 전체 흐름 정리
☑️ 준비 사항
- Docker 가 설치된 로컬 환경
- MariaDB, Tomcat 컨테이너
- 컨테이너 내부 접속을 위한 bash 쉘 사용
- 테스트용 데이터베이스와 테이블 (예:
mydb.users)
☑️ 1. MariaDB에 테스트 데이터 준비
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50),
email VARCHAR(100)
);
☑️ 2. Tomcat 컨테이너에 JDBC 드라이버 설치
wget https://dlm.mariadb.com/2896635/Connectors/java/connector-java-2.7.9/mariadb-java-client-2.7.9.jar \
-P /usr/local/tomcat/lib
☑️ 3. MariaDB 컨테이너 IP 확인
docker inspect mariadb | grep IPAddress
출력에서 "IPAddress": "172.17.0.2"처럼 확인되는 주소를 JDBC URL에 사용.
☑️ 4. Tomcat 시작 페이지 수정
아래 JSP 파일을 Tomcat 컨테이너에 배포해 DB 연결을 확인
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import = "java.sql.*" %>
<html>
<head>
<title>Users Table</title>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
padding: 10px;
}
</style>
</head>
<body>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
String url = "jdbc:mysql://172.17.0.2:3306/mydb";
String id = "root";
String pw = "qwer1234!";
Class.forName("org.mariadb.jdbc.Driver");
conn = DriverManager.getConnection(url, id, pw);
out.println("<h1>MariaDB DB 연결 성공</h1>");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT id, username, email FROM users");
out.println("<table>");
out.println("<tr><th>ID</th><th>Username</th><th>Email</th></tr>");
while (rs.next()) {
int userId = rs.getInt("id");
String username = rs.getString("username");
String email = rs.getString("email");
out.println("<tr><td>" + userId + "</td><td>" + username + "</td><td>" + email + "</td></tr>");
}
out.println("</table>");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
%>
</body>
</html>
☑️ 5. 결과 확인
브라우저에서 http://localhost:8080으로 접속하면 DB에서 조회한 사용자 목록이 테이블로 출력된다.
