[DO/DAO 실습정리]로그인,게시판 구현-1 (UserDO.java , BoardDO.java)

J의 괴발 공부·2023년 8월 18일
0

java

목록 보기
12/13

DAO는 Data Access Object의 약자로, Database에 접근하는 역할을 하는 객체.
프로젝트의 서비스 모델에 해당하는 부분과 데이터베이스를 연결하는 역할을 하며 데이터의 CRUD 작업을 시행하는 클래스!
즉, DAO는 데이터에 대한 CRUD 기능을 전담한 오브젝트를 의미한다.

이를 사용하는 사람은 자신에게 필요하거나 사용하려는 인터페이스를 DAO에게 넘겨주고 DAO는 이 인터페이스를 구현한 구현체를 사용자가 편리하게 사용할 수 있도록 반환해준다.
장점: 효율적인 커넥션 관리와 보안성때문이다.
DAO는 비즈니스 로직을 분리하여 도메인 로직으로부터 DB와 관련한 메커니즘을 숨기기 위해 사용합니다.

DTO(DO)는 Data Transfer Object의 약자로, 데이터를 전달하기 위한 객체.
여러 레이어(Layer)간 데이터를 주고 받을 때 사용할 수 있는데 주로 View와 Controller 사이에서 활용된다.
DTO는 getter / setter 메소드를 포함한다. 하지만, 이외의 다른 비즈니스 로직은 포함하지 않는다.
DTO는 어떻게 구현하느냐에 따라 가변 객체로 활용할 수도 있고 불변 객체로 활용할 수도 있다.
[출처: tistory- skyey94]

● 게시판 구현
주요기능:
-회원가입 기능 필요
-로그인 인증 처리 성공 시, 전체 게시글 목록 보기
-로그아웃 기능 필요
-전체 게시글 목록 보기 페이지에 [검색]기능 구현
-전체 게시글 목록보기 페이지에서 어느 게시글 [제목]을 클릭하면 해당 게시글 [상세보기] 기능 구현
-새 게시글 [등록] 기능 구현
-게시글 [상세보기] 페이지에서 [수정][삭제] 기능 구현
-DB연동 => H2 데이터베이스와 연동

▶ 개발 방식 => 모델 1 구조로 개발
1. 시스템 분석/설계
1.1 요구사항 분석
입력화면 설계
출력화면 설계

1.2 데이터베이스 설계
개체 발견
객체의 속성 발견
개체 간의 관계 설정: 1:1, 1:n, m:n
기본키,외래키 설정

1.3 DO/DAO 패턴으로 클래스 설계

1.4 html, jsp 페이지 설정

▶ 테이블을 몇 개를 생성할지?
users 테이블: 유저ID, 패스워드, 이름, 역할(관리자,일반회원)
board 테이블: 게시글번호,제목,작성자,내용,작성일시,조회수

▶ 필요파일: java클래스(UserDO,UserDAO,BoardDO,BoardDAO,JDBCUtil)
user 패키지 / board 패키지 / common 패키지
jsp 파일은
login,error, login_proc(로그인페이지에 대한 컨트롤러페이지),
logout_proc, getBoardList(게시글 전체 목록보기 페이지),
getBoard(게시글 클릭시 해당글 상세보기 페이지),
insertBoard,insertBoard_proc,updateBoard_proc,deleteBoard_proc
가 필요하여 생성함.

[실습] UserDO.java , BoardDO.java는 멤버필드 선언하고 getter,setter 쓰면 끝..

public class UserDO {
	// 테이블의 컬럼명과 멤버필드(프로퍼티,중간저장소)이름은 동일하게 주자!!
	private String id;          // userID
	private String password;    // 비밀번호
	private String name;        //이름
	private String role;      //역할 (관리자or일반회원)
package board;

import java.sql.Date;

public class BoardDO {

	private int seq;		// 게시글 번호
	private String title;   // 게시글 제목
	private String writer;  // 작성자
	private String content; // 게시글 내용
	private Date regdate;   // 게시일자
	private int cnt;        // 조회수
profile
괴발자가 될것인가, 개발자가 될것인가?

0개의 댓글