DTO(Data Transfer Object)
- 양쪽으로 전송되어 오고가는 데이터를 담은 객체. jsp에서는 Bean이라고 부른다.
- 여러 데이터들을 포장해서 만든 데이터 포장 객체.
- 사용자가 입력한 값을 객체 형태로 받을 수 있게 클래스를 구성한다.
- form에서 입력된 데이터들은 하나의 DTO 객체로 변환 가능하다.
- 하나의 데이터베이스 레코드를 저장하여 레코드와 같은 구조를 가짐. -> 레코드가 50개면 DTO 객체도 50개.
- 한 개의 레코드는 Beans 클래스 객체 하나로 매핑.
- 데이터가 포함된 객체를 한 시스템에서 다른 시스템으로 전달하는 작업을 처리하는 객체.
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 접근을