You are using an outdated browser. Please upgrade your browser to improve your experience.

12/1

사진을 업로드 할 때 어느 회원의 사진인지 알아야 하니까 input type=hidden태그로 회원번호를 보낸다. 유저 눈에는 보이지 않는다.

실무에서 깃허브 collaborator초대 -> 참고하기

이번주는 서블릿과 jsp

자바스크립트없이 ui를 통제할 수가 없음..

브라우저는 엔터를 무시하지만 소스코드에서 \n을 붙이는 이유는 개발자가 소스코드를 보며 디버깅 하기 편하게 하기 위해 붙이는 것이다.

html에 대한 이해와 자바 코드로 그것을 통제하는 것 -> 웹 개발자가 할 일

빨리퇴근하는방법

데이터가 내가 원하는대로 넘어갔는가????

개발자도구 -> 내가 실행한 서블릿 확인 -> geaders에 정보가 제대로 보내졌는지 확인한다.

관계테이블에 활성화/비활성화 컬럼을 추가한다.

기존테이블에 절대 컬럼을 추가하지 못하는 경우에 해결방법?(그림으로 그렸음)


삭제대신 비활성화 시키기

ProjectService에서 update구문 수정

pms_member_project table에 활성상태 컬럼 추가하기

alter table pms_member_project 
add column state int default 1

이제 비활성화시키는 방법

기존 정보들은 삭제되선 안됀다.

  <update id="updateInactiveMembers" parameterType="project">
    update pms_member_project set
    state = 0 
    where project_no=#{no} 
     and member_no in 
     // 여기서 item은 변수명이다. members에서 하나 꺼내 데이터를 담을 변수
    <foreach collection="members" item="member" separator="," open="(" close=")">
      #{no}
    </foreach>
  </update>

도메인 객체는 데이터를 실어나르는 용도의 그릇일 뿐이다.

그러므로 도메인을 마음껏 만들고 삭제하고 메소드를 분리하고 삭제하는것을 두려워하지 말 것.

한 DAO가 한 테이블의 CRUD를 관리한다는 룰만 지키면 최악까진 안간다.

다만 한 DAO가 여러개의 테이블을 관리할 수는 있다. 현재 projectDAO가 pms_project와 pms_member_project를 관리할 수 있는 것 첢..

일단 모두 비활성화 -> 우리가 체크한 멤버만 활성화 -> 새로 체크한 멤버만 insert한다.

서블릿->DAO->DAOMapper로 접근하는게 프로그램 짜기에 더 쉽다.

파라미터는 되도록 건들지 말 것 : 파라미터로 받은 객체 그 어떤 값도 바꾸지 말기


    if(addMembers.size() > 0) {
      Project updateMembersProject = new Project();
      updateMembersProject.setNo(project.getNo());
      updateMembersProject.setMembers(addMembers);

      projectDao.insertMembers(updateMembersProject);
    }
    return count;
  }

파라미터로 받은 값을 변경하지 않기 위해 새 프로젝트 객체를 만들어 inserMembers에 넘긴 것을 알 수 있다.

프로젝트의 이름은 파라미터로 넘겨선 안됀다. 왜냐? 넘기는 도중 프로젝트 이름이 바뀔수도 있다. 그래서 번호를 넘기는거다.

기존에 갖춰져 있는 기능을 변경,수정하는게 더 실무에 가깝다.

ALTER TABLE table ADD [COLUMN] column_name column_definition [FIRST AFTER existing_column];

ALTER TABLE user ADD bio mediumtext DEFAULT null;