JSP DB연동 DTO DAO

MINJU KIM·2023년 12월 5일

JSP

목록 보기
15/30

DTO DAO

DTO : data transfer object

계층 사이에서 데이터를 교환하기 위해 생성하는 객체.
속성(멤버 변수)과 그 속성에 접근하기 위한 getter/setter 메서드만 갖춘 게 특징이다. 그래서 값 객체(value object, VO)라고 한다.

DAO : data access object

데이터베이스의 데이터에 접근하기 위한 객체.
보통 JDBC를 통해 구현하며, 하나의 테이블에서 수행할 수 있는 CRUD(create, read, update, delete 작업)를 전담한다.

//LoginForm.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
    <title>Session login 구현 224p</title>
</head>

<body>
<h2>로그인 페이지</h2>
<span style="color : red; font-size : 1.2em;">
    <%= request.getAttribute("LoginErrMsg") == null ?
        "" : request.getAttribute("LoginErrMsg") %>
</span>

<%
    if (session.getAttribute("UserId") == null){ //로그인 상태 확인
    //로그아웃 상태
%>

<script>
    function validateFrom(form){
        if(!form.user_id.value){
            alert("아이디를 입력하세요.");
            return false;
        }
        if(form.user_pw.value == ""){
            alert("패스워드를 입력하세요.");
            return false;
        }
    }
</script>

<form action="LoginProcess.jsp" method="post" name="loginFrm" onsubmit="return validateFrom(this)";>
    아이디 : <input type="text" name="user_id" /><br/>
    패스워드 : <input type="password" name="user_pw" /><br/>
    <input type="submit" value="로그인하기" /><br/>
</form>
<%
    } else { //로그인된 상태
%>
    <%= session.getAttribute("UserName") %> 회원님, 로그인 하셨습니다.<br/>
    <a href = "Logout.jsp">[로그아웃]</a>
<%
    }
%>
</body>
</html>

업로드중..

//MemberDTO :계층 사이에서 데이터를 교환하기 위해 생성하는 객체. 
//속성(멤버 변수)과 그 속성에 접근하기 위한 getter/setter 메서드만 갖춘 게 특징
package com.membership;
// 멤버 변수 선언
public class MemberDTO {
    private String id;
    private String pass;
    private String name;
    private String regidate;

//속성에 접근하기 위한 getter/setter 
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRegidate() {
        return regidate;
    }

    public void setRegidate(String regidate) {
        this.regidate = regidate;
    }
}
package com.membership;

import com.common.JDBConnect;

public class MemberDAO extends JDBConnect {
//명시한 데이터베이스로의 연결이 완료된 MemberDAO객체를 생성합니다.
    public MemberDAO(String drv, String url, String id, String pw){
        super(drv, url, id, pw);
    }

    //명시한 아이디/패스워드와 일치하는 회원 정보를 반환합니다.
    public MemberDTO getMemberDTO(String uid, String upass){
        MemberDTO dto = new MemberDTO(); //회원 정보 DTO 객체 생성
    String query = "SELECT id, pass, name, regidate FROM member WHERE id=? AND pass=?";
    //쿼리문 템플릿

    try{
        psmt = con.prepareStatement(query); //동적 쿼리문 준비
        psmt.setString(1, uid);
        psmt.setString(2, upass);
        rs = psmt.executeQuery(); //쿼리문 실행

        //결과 처리
        if(rs.next()){
            dto.setId(rs.getString("id"));
            dto.setPass(rs.getString("pass"));
            dto.setName(rs.getString(3));
            dto.setRegidate(rs.getString(4));
        }


    }catch (Exception e){
        e.printStackTrace();
    }
    return dto; //DTO 객체 반환
    }


}

0개의 댓글