MAMP의 DB를 JSP와 연결하여 사용하는 것이 맥(OSX)에서 JSP를 공부하는 중에 생긴 매우 어려운 점이었다. 하지만 막상 실제로 해결을 하고 보니 순전히 내가 JSP에 대한 구조를 잘 몰랐기 때문에 생긴 단순한 실수였다. 한마디로 바보.

구축환경

 위의 구축환경을 보면 알겠지만 매우 간단하다. MAMP는 윈도우의 AMP와 동일한 것으로 Apache+MySQL을 자동으로 설치하여 준다. 그리고 기본적으로 톰캣에는 모든 DB에 대한 JDBC가 제공되고 있지 않으므로 각 DB의 사이트에서 다운을 받으면 된다. 난 MySQL을 사용하기 때문에(MAMP) MySQL 사이트에서 다운 받았다.

  1. JDBC드라이버의 설치
    ~/ROOT/WEB-INF/lib/ 앞의 위치에 JDBC Driver.jar 파일을 복사를 해둔다. (파일명의 경우는 드라이버마다 다르다. 어디에 복사해야하는지 몰라서 하루종일 DB만 만지고 있었음)
  2. Tomcat의 재실행
  3. JSP파일을 열어본다.

 이런 간단한 방법으로 쉽게 MAMP와 톰캣을 이용하여 DB를 접근할 수 있다. DB의 관리는 MAMP에서 기본으로 제공되고 있는 phpMyAdmin을 이용하거나 다른 DB관리프로그램(CocoaSQL 등)을 이용하여도 된다.

 위의 설정이 되는지 간단한 테스트를 하여보자.

  1. pureshop 데이터베이스의 생성 (phpMyAdmin)
  2. good 테이블 생성, 컬럼 id, title, price
  3. good 테이블에 간단한 테스트 값의 입력
  4. 아래의 소스를 실행
<%@ page contentType="text/html;charset=utf-8" import="java.sql.*" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
 
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>PureShop : DB test</title>
	<meta name="author" content="PureHolic">
</head>
<body>
<h1>Good's list</h1>
 
<%
	String DB_URL = "jdbc:mysql://localhost/pureshop";
	String DB_USER = "root";
	String DB_PASSWORD = "root";
 
	Connection db;
	Statement stmt;
	ResultSet rs = null;
 
	String query = "SELECT * FROM good";
 
	try {
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		db = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
		stmt = db.createStatement();
 
		rs = stmt.executeQuery(query);
%>
<ol>
<% while(rs.next()) { %>
<li>상품ID : <%= rs.getInt("id") %> | 상품명 : <%= rs.getString("title") %> | 상품가격 : <%= rs.getDouble("price") %></li>
 
<% } %>
</ol>
 
<%
		rs.close();
		stmt.close();
		db.close();
	} catch(Exception e) { e.printStackTrace(); }
%>
</body>
</html>

실행결과

이제 JSP의 기초는 대략 알게 된 것 같다. 이제 DB를 좀 더 잘 다룰 수 있는 방법과 또 나만의 쇼핑몰을 위한 구상을 하여서 JSP를 이용한 쇼핑몰을 하나 제작해봐야겠다.