JSP에서 JDBC로 MariaDB 쿼리 작성 및 실행 방법
이번 글에서는 JSP를 사용하여 JDBC로 MariaDB에 연결하고, 데이터베이스에 쿼리문을 작성 및 실행하는 방법에 대해 알아보겠습니다. 이 과정을 통해 기본적인 데이터베이스 연동부터 데이터 삽입, 조회 작업까지 다루게 됩니다.
1. JDBC 설정 및 MariaDB 연결
JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 연결하고 SQL 쿼리를 실행할 수 있도록 해주는 API입니다. MariaDB와의 연결을 위해 JDBConnect
클래스를 작성하고, 이를 통해 데이터베이스와의 연결을 관리할 수 있습니다. 아래는 연결 클래스를 작성하는 예제입니다.
package common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.ServletContext;
public class JDBConnect {
public Connection con;
public Statement stmt;
public PreparedStatement psmt;
public ResultSet rs;
// 기본 생성자
public JDBConnect(ServletContext application) {
try {
// JDBC 드라이버 로드
String driver = application.getInitParameter("MariaDBDriver");
Class.forName(driver);
// DB에 연결
String url = application.getInitParameter("MariaDBURL");
String id = application.getInitParameter("MariaDBId");
String pwd = application.getInitParameter("MariaDBPwd");
con = DriverManager.getConnection(url, id, pwd);
System.out.println("DB 연결 성공(인수 생성자)");
} catch (Exception e) {
e.printStackTrace();
}
}
// 연결 해제(자원 반납)
public void close() {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (psmt != null) psmt.close();
if (con != null) con.close();
System.out.println("JDBC 자원 해제");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
자세한 설명은 아래 이전 게시글을 참고하시면 됩니다.
2. 회원 추가 테스트 (executeUpdate() 사용)
아래 코드는 JSP 페이지에서 JDBC를 통해 MariaDB에 데이터를 삽입하는 예제입니다. 이 예제에서는 회원 정보를 데이터베이스에 추가하는 SQL INSERT 문을 실행합니다.
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="common.JDBConnect" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>회원 추가 테스트</title>
</head>
<body>
<h2>회원 추가 테스트 (MariaDB용)</h2>
<%
// DB에 연결
JDBConnect jdbc = new JDBConnect();
// 테스트용 입력값 준비
String id = "user2";
String pass = "abcd1234";
String name = "사용자2";
// 쿼리문 생성
String sql = "INSERT INTO member (id, pass, name, regidate) VALUES (?, ?, ?, CURRENT_TIMESTAMP)";
PreparedStatement psmt = jdbc.con.prepareStatement(sql);
psmt.setString(1, id);
psmt.setString(2, pass);
psmt.setString(3, name);
// 쿼리 수행
int inResult = psmt.executeUpdate();
out.println(inResult + " 행이 입력되었습니다.");
// 연결 닫기
jdbc.close();
%>
</body>
</html>
- DB 연결: 먼저,
JDBConnect
클래스를 이용하여 MariaDB에 연결합니다. 이 클래스는 데이터베이스와의 연결을 관리하는 역할을 합니다. - 테스트용 입력값 준비: 예제에서는 회원 ID, 비밀번호, 이름을 각각
id
,pass
,name
변수에 저장합니다. 이 변수들은 이후 SQL 쿼리문에 바인딩됩니다. - 쿼리문 생성:
INSERT INTO member (id, pass, name, regidate) VALUES (?, ?, ?, CURRENT_TIMESTAMP)
라는 SQL 쿼리를 작성합니다. 여기서?
는 나중에 변수 값을 바인딩할 위치를 나타냅니다. - PreparedStatement 객체 생성 및 바인딩:
PreparedStatement
객체를 사용하여 SQL 쿼리를 준비하고,psmt.setString()
메서드를 사용해 각각의?
자리에id
,pass
,name
값을 바인딩합니다. - 쿼리 실행:
executeUpdate()
메서드를 호출하여 SQL 쿼리를 실행하고, 반환된 값은 삽입된 행의 개수를 나타냅니다. 이 값을 이용해 몇 행이 삽입되었는지를 화면에 출력합니다. - 연결 닫기: 마지막으로, 데이터베이스 연결을 해제하여 자원을 반납합니다.
▼ 예제 코드 실행 결과 화면


3. 회원 목록 조회 테스트 (executeQuery() 사용)
다음은 회원 목록을 조회하는 예제입니다. 이 예제에서는 SELECT 문을 사용하여 데이터베이스에 저장된 회원 정보를 조회하고, 결과를 JSP 페이지에 출력합니다:
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="common.JDBConnect" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>회원 목록 조회</title></head>
<body>
<h2>회원 목록 조회 테스트 (MariaDB용)</h2>
<%
// DB에 연결
JDBConnect jdbc = new JDBConnect();
// 쿼리문 생성
String sql = "SELECT id, pass, name, regidate FROM member";
Statement stmt = jdbc.con.createStatement();
// 쿼리 수행
ResultSet rs = stmt.executeQuery(sql);
// 결과 확인(웹 페이지에 출력)
while (rs.next()) {
String id = rs.getString(1);
String pw = rs.getString(2);
String name = rs.getString("name");
java.sql.Timestamp regidate = rs.getTimestamp("regidate");
out.println(String.format("%s %s %s %s", id, pw, name, regidate) + "<br/>");
}
// 연결 닫기
jdbc.close();
%>
</body>
</html>
- DB 연결:
JDBConnect
클래스를 이용해 MariaDB에 연결합니다. 이 클래스는 데이터베이스와의 연결을 관리하는 역할을 합니다. - 쿼리문 생성: 회원 정보를 조회하기 위한 SQL 쿼리
SELECT id, pass, name, regidate FROM member
를 작성합니다. 이 쿼리는member
테이블에서 ID, 비밀번호, 이름, 등록 날짜를 조회합니다. - Statement 객체 생성 및 쿼리 실행:
Statement
객체를 생성하고executeQuery()
메서드를 사용하여 SQL 쿼리를 실행합니다. 이 메서드는 결과를ResultSet
객체에 저장합니다. - 결과 확인 및 출력:
ResultSet
객체를 반복문으로 순회하면서 각 행의 데이터를 가져옵니다.rs.getString()
및rs.getTimestamp()
메서드를 사용해 각각의 열 값을 가져와 화면에 출력합니다. - 연결 닫기: 마지막으로, 데이터베이스 연결을 해제하여 자원을 반납합니다.
▼ 예제 코드 실행 결과 화면


이 두 가지 예제를 통해 JDBC를 사용하여 MariaDB에 데이터를 삽입하고 조회하는 기본적인 방법에 대해 알아보았습니다. 이러한 방법을 응용하여 다양한 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 수행할 수 있습니다.
관련 이전 게시글
- JSP에서 MariaDB 연결하기: JDBC 기본 설정 및 테스트
- JSP에서 web.xml과 Application 객체를 활용한 MariaDB 연결 방법
- JSP에서 Tomcat 서버와 MariaDB 연동: 커넥션 풀 설정 및 테스트
- JSP/Servlet 웹 애플리케이션에서 web.xml 활용한 에러 페이지 설정
- JSP 내장 객체 사용법: session과 application
이 글이 도움이 되셨다면 공유 부탁 드립니다.