국비지원교육 Day21

두윤기·2023년 1월 27일
0

DAO(Data Access Object)

  • DataBase와 관련된 CRUD 작업을 처리하는 Object
  • Data Transfer Object(DTO)와 연계

> DAO Field

mapper

RowMapper<SubjectDto> mapper = new RowMapper<SubjectDto>() {
  @Override
    public SubjectDto mapRow(ResultSet rs, int idx) throws SQLException {
      SubjectDto dto = new SubjectDto();
      dto.setNo(rs.getInt("NO"));
      dto.setName(rs.getString("NAME"));
      dto.setPeriod(rs.getInt("PERIOD"));
      dto.setPrice(rs.getInt("PRICE"));
      dto.setType(rs.getString("TYPE"));
      return dto;
    }
};

+ 해당 method(CRUD)가 수행될 때만 DB와 연결하기 위해 JdbcTemplate은 local variable로 사용한다.

> DAO method

  • DAO는 특정 DataBase와 연계해서 사용하므로 static method가 아닌 instance method 형태로 사용한다.

CREATE

public void insert(TABLEDto tableDto);

READ(List)

public List<TABLEDto> selectList();
public List<TABLEDto> selectList(String attribute, String target);

READ(상세)

public TABLEDto selectOne(int primaryKey);

UPDATE

public boolean update(TABLEDTO tableDto);

DELETE

public void insert(TABLEDto tableDto);
TABLE에 따라 사용 빈도가 적을 수 있으므로 Static이 아닌 instance를 생성하여 사용한다.

+ 홈페이지 설계
1. DB 설계
2. 기능 설계
3. BACK(DAO, DTO, 기능)
JAVA bins pattern

student dao, dto

회원 TABLE 및 program 구상

MEMBER TABLE

사용자가 입력하는 항목

  • (필)아이디 MEMBER_ID / 5~20자 영문 소문자, 숫자, 대시(-), 언더바(_), 대표항목 (중복 불가)

  • (필)비밀번호 MEMBER_PASSWORD / 8~16자 영문 대 소문자, 숫자, 특수문자 사용

  • (필)이름(nickname) MEMBER_NICK / 2~10자 한글 또는 숫자 사용 (중복 불가)

  • (필)전화번호 MEMBER_TEL / 휴대전화 번호만 가능(010XXXXXXXX), 대시 제외

  • (선)이메일 MEMBER_EMAIL / 넉넉하게 다 합쳐서 100byte(선택 항목)

  • (필)주소(우편번호, 기본주소, 상세주소)

    • MEMBER_POST / 5~6자리 숫자만 가능
    • MEMBER_BASIC_ADDR / 한글 100자 이내
    • MEMBER_DETAIL_ADDR / 한글 100자 이내
  • (필)생년월일 MEMBER_BIRTH / 문자열(YYYY-MM-DD) (시간을 사용 안할 경우 문자열 사용)

  • 성별

  • 비밀번호 확인 질문/답변

  • 추천인

  • 가입경로

  • 취미

사용자가 입력하지 않는 항목

  • (필)회원등급 MEMBER_LEVEL / (준회원/일반회원/우수회원/관리자) 중 하나(가입 시 준회원)

  • (필)포인트 MEMBER_POINT / 0이상 숫자만 가능

  • (필)가입일 MEMBER_JOIN / 가입 당시 시각으로 설정

  • (필)최종로그인 일자 MEMBER_LOGIN / 로그인 당시의 현재 시각(가입 시 미설정)

  • 휴먼계정 여부

  • 블랙여부

JDBC05에 제출

profile
programmerD

0개의 댓글