데이터 검색 및 페이징 처리는 대용량 데이터를 효율적으로 관리하고 사용자에게 편리한 방식으로 정보를 제공하는 중요한 기능입니다. JSP와 JDBC를 사용하여 데이터베이스에서 데이터를 검색하고 결과를 페이지 단위로 나누어 표시하는 방법을 아래 예제를 통해 설명하겠습니다.
예제 1: 데이터베이스에서 데이터 검색
이 예제에서는 사용자 입력을 기반으로 데이터베이스에서 특정 데이터를 검색합니다.
searchData.jsp
<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Search Data</title>
</head>
<body>
<form action="searchData.jsp" method="post">
Search Keyword: <input type="text" name="keyword">
<input type="submit" value="Search">
</form>
<%
String keyword = request.getParameter("keyword");
if(keyword != null && !keyword.trim().isEmpty()) {
try {
// 데이터베이스 연결 설정
String url = "jdbc:mysql://localhost:3306/YourDatabase";
String user = "root";
String password = "rootpassword";
Class.forName("cohttp://m.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection(url, user, password);
// SQL 쿼리 준비
String sql = "SELECT * FROM YourTable WHERE YourColumn LIKE ?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, "%" + keyword + "%");
// 쿼리 실행
ResultSet rs = pstmt.executeQuery();
// 검색 결과 출력
while(rs.next()) {
out.println("Data: " + rs.getString("YourDataColumn") + "<br>");
}
rs.close();
pstmt.close();
con.close();
} catch(Exception e) {
e.printStackTrace();
}
}
%>
</body>
</html>
예제 2: 데이터 페이징 처리
이 예제에서는 데이터베이스의 데이터를 페이지 단위로 나누어 표시합니다.
pagingData.jsp
<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Data Paging</title>
</head>
<body>
<%
int page = 1;
int recordsPerPage = 5;
if(request.getParameter("page") != null)
page = Integer.parseInt(request.getParameter("page"));
try {
// 데이터베이스 연결 설정
String url = "jdbc:mysql://localhost:3306/YourDatabase";
String user = "root";
String password = "rootpassword";
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection(url, user, password);
// 페이징을 위한 SQL 쿼리 준비
String sql = "SELECT * FROM YourTable LIMIT " + (page-1)*recordsPerPage + "," + recordsPerPage;
PreparedStatement pstmt = con.prepareStatement(sql);
// 쿼리 실행
ResultSet rs = pstmt.executeQuery();
// 데이터 표시
while(rs.next()) {
out.println("Data: " + rs.getString("YourDataColumn") + "<br>");
}
rs.close();
pstmt.close();
con.close();
} catch(Exception e) {
e.printStackTrace();
}
%>
<!-- 페이지 번호 링크 -->
<%
for(int i=1; i<=5; i++) {
out.println("<a href='pagingData.jsp?page=" + i + "'>" + i + "</a> ");
}
%>
</body>
</html>
관련 전문용어 설명
- 페이징(Paging): 데이터를 페이지 단위로 나누어 표시하는 방법으로, 대량의 데이터를 효율적으로 관리하고 사용자가 쉽게 탐색할 수 있도록 합니다.
- PreparedStatement: SQL 쿼리를 실행하기 전에 준비하고, 매개변수를 동적으로 바인딩하는 데 사용되는 객체입니다.
- LIKE 연산자: SQL에서 사용되며, 특정 패턴과 일치하는 레코드를 검색할 때 사용됩니다. %는 0개 이상의 문자를 나타냅니다.
'jsp' 카테고리의 다른 글
파일 다운로드: 웹 페이지에서 파일을 다운로드하는 방법을 다루는 예제. (0) | 2023.12.25 |
---|---|
이메일 전송: JSP를 사용하여 이메일을 전송하는 예제. (0) | 2023.12.25 |
이미지 업로드: 웹 페이지에서 이미지를 업로드하고 표시하는 방법을 다루는 예제. (0) | 2023.12.25 |
이미지 표시: JSP 페이지에서 이미지를 표시하는 방법을 배우는 예제. (0) | 2023.12.25 |
데이터베이스 입력: 사용자로부터 데이터를 입력받아 데이터베이스에 저장하는 예제. (0) | 2023.12.25 |