[JSP] DTO / DAO / Java Beans

이혜원·2024년 9월 27일

JSP

목록 보기
2/2

DTO(Data Transfer Object)

  • 양쪽으로 전송되어 오고가는 데이터를 담은 객체. jsp에서는 Bean이라고 부른다.
  • 여러 데이터들을 포장해서 만든 데이터 포장 객체.
  • 사용자가 입력한 값을 객체 형태로 받을 수 있게 클래스를 구성한다.
  • form에서 입력된 데이터들은 하나의 DTO 객체로 변환 가능하다.
  • 하나의 데이터베이스 레코드를 저장하여 레코드와 같은 구조를 가짐. -> 레코드가 50개면 DTO 객체도 50개.
  • 한 개의 레코드는 Beans 클래스 객체 하나로 매핑.
  • 데이터가 포함된 객체를 한 시스템에서 다른 시스템으로 전달하는 작업을 처리하는 객체.
  • 생성자, getter, setter로 구성되어 있다.
  • DTO 예제코드
package com.kh.user.dao;

public class UserDTO {
	private String userid;
	private String userpw;
	private String username;
	private String userphone;
	private String useraddr;
	
	public String getUserid() {
		return userid;
	}
	public void setUserid(String userid) {
		this.userid = userid;
	}
	public String getUserpw() {
		return userpw;
	}
	public void setUserpw(String userpw) {
		this.userpw = userpw;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getUserphone() {
		return userphone;
	}
	public void setUserphone(String userphone) {
		this.userphone = userphone;
	}
	public String getUseraddr() {
		return useraddr;
	}
	public void setUseraddr(String useraddr) {
		this.useraddr = useraddr;
	}
	
}

DAO(Data Access Object)

  • 데이터에 접근, 데이터를 관리하기 위한 객체들을 관리하는 여러 메서드들이 정의되어 있는 곳이다.
  • insert, delete, update, select 등 레코드 처리를 주 목적으로 한다.
  • DTO 객체를 데이터베이스 서버에 저장한다.
  • 데이터베이스 서버로부터 레코드를 select한 후, DTO 객체로 변경해서 가져온다.
  • SQL을 직접 실행하는 기능을 가진다.
  • 데이터 접근을 목적으로 하는 객체이다.
  • Connection 같은 것을 하나만 두고 여러 사용자가 DAO의 인터페이스를 사용하여 필요한 자료에 접근하도록 한다.
  • DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트이다.
  • DAO 예제코드
package com.kh.user.dao;

import java.util.HashMap;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.kh.mybatis.SqlMapConfig;

public class UserDAO {
	SqlSessionFactory factory = SqlMapConfig.getFactory();
	SqlSession session;
	
	public UserDAO() {
		session = factory.openSession(true);
	}
	
	// 회원가입
	public boolean join(UserDTO user) {
		boolean result = false;
		if(session.insert("User.join", user) == 1) {
			result = true;
		}
		
		return result;
	}
	
	// 로그인 메서드
	public boolean login(String userid, String userpw) {
		boolean result = false;
		HashMap<String, String> datas = new HashMap<>();
		datas.put("userid", userid);
		datas.put("userpw", userpw);
		
		if((Integer) session.selectOne("User.login", datas) == 1) {
			result = true;
		}
		
		return result;
	}
}

Java Beans

JSP의 표준 액션 태그를 통해 접근할 수 있는 자바 클래스로서 멤버변수(필드)와 setter, getter 메소드로 이루어져 있다.

Java Beans 태그

  • 객체 생성
    java의 경우 : Member m = new Member();
    jsp의 경우 : <jsp:useBean class="패키지명.Member" id="member">

  • setter()
    java : member.setName("홍길동");
    jsp : <jsp:setProperty name="member" property="name" value="홍길동">

  • getter()
    java : member.getName();
    jsp : <jsp:getProperty name="member" property="name">

  • property
    private로 선언된 멤버 변수에 접근할 수 있도록 public 접근을

0개의 댓글