Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP에서 데이터 소스를 설정하는 방법: sql:setDataSource 태그 완벽 가이드

JSTL(JavaServer Pages Standard Tag Library)에서 데이터베이스 작업을 수행하려면 먼저 데이터 소스를 설정해야 합니다. 이 역할을 담당하는 것이 바로 <sql:setDataSource> 태그입니다. 이 태그는 데이터 소스 구성 변수를 직접 설정하거나, 다른 JSTL 데이터베이스 액션(sql:query, sql:update 등)의 입력값으로 사용할 수 있도록 데이터 소스 정보를 스코프 변수(scope variable)에 저장합니다.

sql:setDataSource 태그의 주요 속성

<sql:setDataSource> 태그는 다음과 같은 속성들을 지원합니다. 모든 속성은 필수가 아니며, 필요에 따라 선택적으로 사용할 수 있습니다.

속성설명필수 여부기본값
driver등록할 JDBC 드라이버 클래스의 이름No없음
url데이터베이스 연결을 위한 JDBC URLNo없음
user데이터베이스 사용자 이름(ID)No없음
password데이터베이스 접속 비밀번호No없음
dataSource미리 준비된 데이터베이스 객체No없음
var데이터베이스를 나타낼 변수의 이름No기본 데이터 소스로 설정됨
scope데이터베이스를 나타내는 변수의 적용 범위(scope)NoPage

실전 예제: MySQL 데이터베이스 연결

예제를 통해 실제 사용 방법을 살펴보겠습니다. 다음과 같은 MySQL 데이터베이스 환경을 가정합니다.

  • JDBC MySQL 드라이버(com.mysql.jdbc.Driver)를 사용합니다.

  • 로컬 머신(local machine)에 존재하는 TEST 데이터베이스에 연결합니다.

  • user_id 계정과 비밀번호를 사용하여 TEST 데이터베이스에 접근합니다.

위 매개변수들은 여러분의 MySQL 또는 기타 데이터베이스 환경 설정에 따라 달라질 수 있습니다. 위 조건을 바탕으로 setDataSource 태그를 사용하는 예제는 다음과 같습니다.

<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/sql" prefix = "sql"%>
<html>
   <head>
      <title>JSTL sql:setDataSource Tag</title>
   </head>
   <body>
      <sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver" url = "jdbc:mysql://localhost/TEST" user = "user_id" password = "mypassword"/>
      <sql:query dataSource = "${snapshot}" sql = "..." var = "result" />
   </body>
</html>

코드를 살펴보면 sql:setDataSource 태그가 생성한 데이터 소스를 snapshot이라는 변수에 저장하고, 이후 sql:query 태그에서 ${snapshot} 표현식을 통해 해당 데이터 소스를 참조하여 SQL 쿼리를 실행합니다. 이처럼 <sql:setDataSource> 태그는 이후에 사용되는 모든 SQL 관련 태그들의 기반이 되는 핵심 요소입니다.