Java Bean 을 이용해서 DB 액세스 하기 – 2

Java Bean 을 이용해서 DB 액세스 하기 – 2

DB Access

Java Bean 이란 어떠한 기능을 수행하는 컴포넌트이다. – 2

저번 포스팅에 JSP 에서 사용할 Bean(컴포넌트)를 만들었다. 따라서 이번 포스팅에서는 JSP에 직접 Bean 을 선언하고 사용할 차례이다. 가장 기본적인 Bean 사용방법은 다음과 같다.

  1. Bean을 선언한다 : <jsp:useBean id=”객체이름” class=”컴포넌트경로” scope=”객체범위” />
  2. 선언한 객체 이름을 갖고 사용한다.

 

UI – index.jsp

인터페이스는 간단한 메뉴로 작성될 예정이다. 우선 index.jsp는 다음 그림과 같다.


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel='stylesheet' type='text/css' href='css/dbprogstyle.css'>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h2>Menu</h2>
    <ol>
        <li><a href=jsp/selectAllCourse.jsp>전체 교과목 명단</a></li>
        <li><a href=jsp/selectCourse.jsp>교과목 검색</a></li>
        <li><a href=jsp/addCourse.jsp>교과목 추가</a></li>
        <li><a href=jsp/deleteCourse.jsp>교과목 삭제</a></li>
    </ol>
</body>
</html>

이제 네 개의 각 해당하는 JSP를 만들어주면 끝난다.

 

UI – selectAllCourse.jsp

전체 교과목을 불러온다. 여기서 과목번호에 ‘a’ 태그를 붙여서 수정하는 페이지로 이동하는 링크를 걸었다.

jsp액션을 통해 Bean을 사용하겠다는 선언을 다음과 같이 하고 사용하면 된다. jsp 액션의 id 속성의 dao와 스크립트릿 안에서 사용한 dao를 보면 짐작할 수 있을 것이다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.course.vo.*" %>

<jsp:useBean id=”dao” class=”com.course.dao.CourseDaoImpl” scope=”page”></jsp:useBean>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel='stylesheet' type='text/css' href='../css/dbprogstyle.css'>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h2>전체 교과목 명단</h2>
    <table>
        <tr>
            <td>과목번호</td>
            <td>과목이름</td>
            <td>학점</td>
            <td>학과</td>
            <td>교수이름</td>
        </tr>
        <%
            for( Course course :

dao
.getAllCourses() ) {
                out.write("<tr>");
                out.write(" <td><a href=modifyCourse.jsp?cno="+course.getCno()+">"+course.getCno()+"</a></td>");
                out.write(" <td>"+course.getCname()+"</td>");
                out.write(" <td>"+course.getCredit()+"</td>");
                out.write(" <td>"+course.getDept()+"</td>");
                out.write(" <td>"+course.getPrname()+"</td>");
                out.write("</tr>");
            }
        %>
    </table>
</body>
</html>

 

UI – selectCourse.jsp

특정 문자열을 갖고 학과를 검색하는 페이지이다.

마찬가지로 jsp 액션으로 선언 후 사용한다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.course.vo.*, java.util.List"%>
<jsp:useBean id="

dao
" class="com.course.dao.CourseDaoImpl" scope="page" />

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel='stylesheet' type='text/css' href='../css/dbprogstyle.css'>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
        if (request.getParameter("str") == null) {
    %>
    <h2>교과목 검색</h2>
    <form action=selectCourse.jsp>
        <table>
            <tr>
                <td>검색할 학과목</td>
                <td><input type="text" name="str" placeholder="학과입력" /></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="찾기" /></td>
            </tr>
        </table>
    </form>
    <%
        } else if (

dao
.selectCourse(request.getParameter("str")) == null) {
    %>
    <h2>조회된 교과목이 없습니다.</h2>
    <a href=../index.jsp>메인으로 돌아가기</a>
    <%
        } else {
            String str = request.getParameter("str");
    %>
    <h2>조회된 교과목</h2>
    <table>
        <tr>
            <td>과목번호</td>
            <td>과목이름</td>
            <td>학점</td>
            <td>학과</td>
            <td>교수이름</td>
        </tr>
        <tr>
            <%
                for (Course course :

dao
.selectCourse(str)) {
            %>
            <td><%=course.getCno()%></td>
            <td><%=course.getCname()%></td>
            <td><%=course.getCredit()%></td>
            <td><%=course.getDept()%></td>
            <td><%=course.getPrname()%></td>
            <%
                }
            %>
        </tr>
    </table>
    <%
        }
    %>
</body>
</html>

이 때 사용하는 PrepareStatement 에서 특수문자 ‘%’ 는 바인딩할 때(setString()) 입력해준다. (이전 포스팅 구현부에서 나온다.)

 

UI – addCourse.jsp

과목을 추가하는 페이지이다.


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.course.vo.*"%>
<jsp:useBean id="

dao
" class="com.course.dao.CourseDaoImpl" scope="page" />

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel='stylesheet' type='text/css' href='../css/dbprogstyle.css'>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
        if (request.getParameter("cno") == null) {
    %>
    <h2>교과목 추가</h2>
    <form action="addCourse.jsp">
        <table>
            <tr>
                <td>과목번호</td>
                <td>과목이름</td>
                <td>학점</td>
                <td>학과</td>
                <td>교수이름</td>
            </tr>
            <tr>
                <td><input type="text" name="cno" placeholder="과목번호" /></td>
                <td><input type="text" name="cname" placeholder="과목이름" /></td>
                <td><input type="text" name="credit" placeholder="학점" /></td>
                <td><input type="text" name="dept" placeholder="학과" /></td>
                <td><input type="text" name="prname" placeholder="교수이름" /></td>
            </tr>
            <tr>
                <td colspan="5"><input type="submit" value=" 추가하기" /> / <input
                    type="reset" value="취소하기" /></td>
            </tr>
        </table>
    </form>
    <%
        } else {
            String cno = request.getParameter("cno");
            String cname = request.getParameter("cname");
            String credit = request.getParameter("credit");
            String dept = request.getParameter("dept");
            String prname = request.getParameter("prname");

            Course course = new Course(cno, cname, credit, dept, prname);
            if (

dao
.insertCourse(course)) {
    %>
                <h2>성공적으로 추가 되었습니다.</h2>
                <a href=../index.jsp>메뉴로 돌아가기</a>
    <%
            } else {
    %>
                <h2>추가하지 못했습니다. 확인 후 다시 시도해주세요.</h2>
                <a href=../index.jsp>메뉴로 돌아가기</a>
    <%
            }
        }
    %>
</body>
</html>

 

UI – deleteCourse.jsp

교과목을 지우는 페이지이다.


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.course.vo.*"%>
<jsp:useBean id="

dao
" class="com.course.dao.CourseDaoImpl" scope="page" />

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel='stylesheet' type='text/css' href='../css/dbprogstyle.css'>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
        if (request.getParameter("cno") == null) {
    %>
    <h2>교과목 삭제</h2>
    <form action=deleteCourse.jsp>
        <table>
            <tr>
                <td>과목번호</td>
                <td><input type="text" name="cno" placeholder="과목번호" /></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="삭제하기" /></td>
            </tr>
        </table>
    </form>
    <%
        } else {
            String cno = request.getParameter("cno");
            if (

dao
.deleteCourse(cno)) {
    %>
                <h2>성공적으로 삭제했습니다.</h2>
                <a href=../index.jsp>메뉴로 돌아가기</a>
    <%
            } else {
    %>
                <h2>삭제 실패했습니다. 확인 후 다시 시도해주세요.</h2>
                <a href=../index.jsp>메뉴로 돌아가기</a>
    <%
            }
        }
    %>
</body>
</html>

 

%d 블로거가 이것을 좋아합니다: