0. 목적
JDBC 드라이버를 이용해, JSP와 DBMS를 연동하는 방법에 대해 알아보자. DBMS라 함은, 데이터베이스 관리 시스템의 약자로 MySQL DB, Maria DB 등등이 이에 포함된다. 본 포스트에서는 DBMS의 대표적인 MySQL DB와 Maria DB들을 JSP와 연동하는 방법에 대해 안내하고자 한다. 또한, JSP와 DBMS를 연동하는 방법을 숙지하고 있어야 로그인 폼, 게시판 폼 등 기본적인 기능을 제공하는 웹사이트를 제작할 수 있기 때문에 가히 필수적인 부분이라고 할 수 있다.
1. 참고
본 포스트에서는 Eclipse IDE for Web Devloper 2020-06
버전과 MySQL 8.0.31
, Tomcat v9.0
을 사용했으니 참고하자. 타 버전 사용자이더라도, 필자와 크게 다를 부분은 없을 것이다.
- Eclipse 프로젝트에 Tomcat Server
가 추가되어 있지 않다면, 웹서버가 구축되어 있지 않아 .jsp
파일을 실행하기 어려우니 아래의 링크를 참고해 조치하기 바란다.
2. DBMS Connector 다운로드
2-1. MySQL DB Connector
MySQL Connector (for JAVA)를 내려받기 위해 상기 링크에 접속한다.
Select Operating System
을 Platform Independent
로 설정하고, ZIP Archive
를 Download
한다.
다른 파일은 필요 없고, 해당 ZIP 파일에서 mysql-connector-j-8.0.31.jar
파일만 확보하면 된다.
2-2. Maria DB Connector
MariaDB Connector (for JAVA)를 내려받기 위해 상기 링크에 접속한다.
아래와 같이 Connectors
다운로드 범주를 선택하고, Download
버튼을 눌러 파일을 내려받자.
Product : Java 8+ connector
Version : 최신 버전
OS : Platform Independent
3. 프로젝트 파일에 JDBC 드라이버 설치
각 DBMS의 connector.jar
파일을 내려받았으니, 이제 Eclipse 프로젝트 폴더에 설치해 줄 차례이다.
프로젝트명\WebContent\WEB-INF\lib\
프로젝트 폴더의 상기 경로 (lib
폴더)에 내려받은 connector.jar
파일을 Copy
한다. 본인이 사용할 DBMS의 connector.jar
파일만 Copy
하면 된다.
4. DBMS 연결 테스트 (코드 작성, 실행)
4-1. MySQL DB
프로젝트 폴더에 MySQL_ConnectTest.jsp
파일을 하나 생성한다.
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>MySQL 연결 드라이버 테스트</title>
</head>
<body>
<h1>MySQL 연결 드라이버 테스트</h1>
<%
String jdbcUrl = "jdbc:mysql://localhost:3306/world";
String dbId = "root";
String dbPwd = "root";
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(jdbcUrl, dbId, dbPwd);
out.println("MySQL 연결 성공");
}
catch (Exception ex)
{
out.println("연결 오류입니다. 오류 메시지 : " + ex.getMessage());
}
%>
</body>
</html>
연결 테스트를 위해서 MySQL
에 기본 제공되는 world
DATABASE
와 연결을 시도했다. world
DATABASE
가 없는 사용자의 경우, 본인이 소유하고 있는 다른 DB SCHEMAS
명칭을 삽입해서 이용하면 된다. 자세한 코드 설명은 아래를 참고하자.
코드 상세 설명
▣ String 변수?
본 포스트에서는 총 3가지의 String 변수를 사용했다.
문자열 변수명 설명 jdbcUrl JDBC드라이버를 이용해 JSP와 MySQL간 연결하기 위한 주소를 작성하는 변수이다. dbId MySQL 데이터베이스에 연결하기 위한 사용자 ID를 변수에 선언하면 된다.
기본값은 root이다.dbPwd MySQL 데이터베이스에 연결하기 위한 사용자 PW를 변수에 선언하면 된다.
▣ JDBC 연결 주소의 구조는?
JDBC 연결 주소 구조 설명 DB 명칭 JDBC 드라이버에서 명시하는 DB 명칭을 입력하면 된다.
우리는 MySQL에 연결하기 위함이므로, mysql을 입력한다.DB 연결 주소 내 컴퓨터의 MySQL Server에 연결하기 위해서는 localhost를 입력한다.
타인 컴퓨터의 MySQL Server에 연결하기 위해서는, 타인 컴퓨터의 IP주소를 입력한다.DB 연결 포트 기본값은 3306이다.
설치시, 다른 포트를 지정한 사용자는 해당 값을 입력하면 된다.DB 명칭 연결하고자 하는 DB SCHEMAS 명칭을 입력한다.
▣ 예외 처리를 위한 try, catch
혹시라도 발생할 오류 메시지 확인을 위해 try / catch문을 사용했다.
① DB 연결 성공 시, out.println을 통해 "MySQL 연결 성공" 문구가 출력될 것이다.
② DB 연결 실패 시, out.println을 통해 발생한 Exception의 ex문구가 출력되어 확인 후 조치할 수 있을 것이다.
Tomcat Server
를 통해 Run
해 보니, 정상적으로 연결이 된 모습을 확인할 수 있다.
※ 연결이 실패할 경우, Exception
메시지를 확인하면 조치하는데 도움이 될 것이다.
4-2. Maria DB
프로젝트 폴더에 MariaDB_ConnectTest.jsp
파일을 하나 생성한다.
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>MariaDB 연결 드라이버 테스트</title>
</head>
<body>
<h1>MariaDB 연결 드라이버 테스트</h1>
<%
String jdbcUrl = "jdbc:mariadb://localhost:3307/sys";
String dbId = "root";
String dbPwd = "root";
try
{
Class.forName("org.mariadb.jdbc.Driver");
Connection connection = DriverManager.getConnection(jdbcUrl, dbId, dbPwd);
out.println("MariaDB 연결 성공");
}
catch (Exception ex)
{
out.println("연결 오류입니다. 오류 메시지 : " + ex.getMessage());
}
%>
</body>
</html>
연결 테스트를 위해, MariaDB
에서 기본 제공하는 sys
DATABASE
와 연결을 시도했다. sys
DATABASE
가 없는 사용자의 경우, 본인이 소유하고 있는 다른DB SCHEMAS
명칭을 삽입해서 이용하면 된다.
코드구조의 경우, MySQL
연동과 비교하여 크게 다를 것이 없다. 하지만, DBMS
가 다르기 때문에 JDBC
연결 주소 두 가지만 달라진 다는 것을 명심하자.
코드 상세 설명
▣ String 변수?
본 포스트에서는 총 3가지의 String 변수를 사용했다.
문자열 변수명 설명 jdbcUrl JDBC드라이버를 이용해 JSP와 MariaDB간 연결하기 위한 주소를 작성하는 변수이다. dbId MariaDB 데이터베이스에 연결하기 위한 사용자 ID를 변수에 선언하면 된다.
기본값은 root이다.dbPwd MariaDB 데이터베이스에 연결하기 위한 사용자 PW를 변수에 선언하면 된다.
▣ JDBC 연결 주소의 구조는?
JDBC 연결 주소 구조 설명 DB 명칭 JDBC 드라이버에서 명시하는 DB 명칭을 입력하면 된다.
우리는 MySQL에 연결하기 위함이므로, mysql을 입력한다.DB 연결 주소 내 컴퓨터의 MySQL Server에 연결하기 위해서는 localhost를 입력한다.
타인 컴퓨터의 MySQL Server에 연결하기 위해서는, 타인 컴퓨터의 IP주소를 입력한다.DB 연결 포트 기본값은 3306이다.
설치시, 다른 포트를 지정한 사용자는 해당 값을 입력하면 된다.DB 명칭 연결하고자 하는 DB SCHEMAS 명칭을 입력한다.
▣ 예외 처리를 위한 try, catch
혹시라도 발생할 오류 메시지 확인을 위해 try / catch문을 사용했다.
- DB 연결 성공 시, out.println을 통해 "MariaDB 연결 성공" 문구가 출력될 것이다.
- DB 연결 실패 시, out.println을 통해 발생한 Exception의 ex문구가 출력되어 확인 후 조치할 수 있을 것이다.
Tomcat server
를 통해 Run
해 보니, 정상적으로 연결이 된 모습을 확인할 수 있다.
※ 연결이 실패할 경우, Exception
메시지를 확인하면 조치하는데 도움이 될 것이다.
5. 소스코드 다운로드
본 Eclipse Web 프로젝트의 소스코드는 필자의 GitHub에서 제공된다. 참고하면 도움이 될 것 같다.
▣ 프로젝트 파일 전체 다운로드
▣ MySQL_ConnectTest.jsp 코드 확인
▣ MariaDB_ConnectTest.jsp 코드 확인