프로그래밍 언어/자바 & 코틀린

[java]DTO(또는 VO)에서 객체의 default 값 만들어주는 방법(Constructor of DTO)

희랍인 조르바 2018. 11. 20. 11:57
dtovalue

DTO에서 생성자를 통해 default value 생성하기

insert를 할 경우 기본값이 있다면 DTO에서 만들어주고 Primary key가 될 변수만 새로운 값을 넣어주면 된다.


생성자를 통해 default 값을 만든 이유는 현재 회사에서 개발중인 메뉴가 환경설정 부분이기 때문이다. 사용자가 따로 설정해두지 않으면 default값이 들어가 있도록 하기 위해서다. (최초 메뉴 사용 시 설정된 값이 없을 것이기 때문에 최초 메뉴 클릭시 default를 insert 해주도록)


기본 생성자를 통해 default값을 만들 수도 있고, 오버로딩을 통해 생성자에 매개변수를 넣어서 기본 값을 만들 수 있다.


만들어 본 코드 예시


public  class  ConstructDto {

    private  String  compName; // 회사 이름

    private  String  empName; // 사원 이름

    private  String  hobby; // 취미

    private  boolean  marryYn; // 결혼 유/무

    private  Date  joinDate; // 입사일

    private  String  positionName; // 직책명

    private  int  wage; // 월급

    public  String  getCompName() {
      return compName;
    }

    public  void  setCompName(String  compName) { 
      this.compName = compName;
    }

    public  String  getEmpName() {
      return empName;
    }

    public  void  setEmpName(String  empName) {
      this.empName = empName;
    }

    public  String  getHobby() {
      return hobby;
    }

    public  void  setHobby(String  hobby) {
      this.hobby = hobby;
    }

    public  boolean  isMarryYn() {
      return marryYn;
    }

    public  void  setMarryYn(boolean  marryYn) {
      this.marryYn = marryYn;
    }

    public  Date  getJoinDate() {
      return joinDate;
    }

    public  void  setJoinDate(Date  joinDate) {
      this.joinDate = joinDate;
    }

    public  String  getPositionName() {
      return positionName;
    }

    public  void  setPositionName(String  positionName) {
      this.positionName = positionName;
    }

    public  int  getWage() {
      return wage;
    }

    public  void  setWage(int  wage) {
      this.wage = wage;
    }

    /** 아무 매개변수 없이 default값을 생성해주는 생성자 */
    public  ConstructDto(){

      this.compName = "chocolateFactory";

      this.empName = "zorba";

      this.hobby = "coding";

      this.marryYn = false;

      this.joinDate = new  Date();
     }

    /** 직책명과 월급을 입력해주었을 때 직책명과 월급을 포함해 나머지 default값을 생성해준다 */
    public  ConstructDto(String  positionName, int  wage){

      this.compName = "chocolateFactory";

      this.empName = "zorba";

      this.hobby = "coding";

      this.marryYn = false;

      this.joinDate = new  Date();

      this.positionName = positionName;

      this.wage = wage;
    }

    @Override
    public  String  toString() {
      return  "ConstructDto{" + "compName='" + compName + '\'' +
              ", empName='" + empName + '\'' + ", hobby='" + hobby + '\'' +
              ", marryYn=" + marryYn + ", joinDate=" + joinDate +
              ", positionName='" + positionName + '\'' + ", wage=" + wage +
       '}';
    }

}


메인에서 호출할 때 코드


public  class  MainOfConstructDto {

   public  static  void  main(String[] args){
     StringBuilder  sb = new  StringBuilder();
     ConstructDto  constructDto = new  ConstructDto();

     sb.append("DTO에서 생성자를 통해 default 값 세팅 \n");
     sb.append("회사 이름 default: "+constructDto.getCompName()+"\n");
     sb.append("사원 이름 default: "+constructDto.getEmpName()+"\n");
     sb.append("취미 default: "+constructDto.getHobby()+"\n");
     sb.append("결혼 유/무 default: "+constructDto.isMarryYn()+"\n");
     sb.append("입사일 default: "+constructDto.getJoinDate()+"\n\n\n");
  
     constructDto = new  ConstructDto("연구원", 1000000);
     sb.append("positionName과 wage를 매개변수로 하는 생성자로 default 값 세팅하기 \n");
     sb.append("회사 이름 default: "+constructDto.getCompName()+"\n");
     sb.append("사원 이름 default: "+constructDto.getEmpName()+"\n");
     sb.append("취미 default: "+constructDto.getHobby()+"\n");
     sb.append("결혼 유/무 default: "+constructDto.isMarryYn()+"\n");
     sb.append("입사일 default: "+constructDto.getJoinDate()+"\n");
     sb.append("직책 이름 default: "+constructDto.getPositionName()+"\n");
     sb.append("월급 default: "+constructDto.getWage());

     System.out.println(sb.toString());
     }
}


결과 값은 아래처럼 나온다.


DTO에서 생성자를 통해 default 값 세팅

회사 이름 default: chocolateFactory
사원 이름 default: zorba
취미 default: coding
결혼 유/무 default: false
입사일 default: Tue Nov 20 01:10:05 KST 2018

positionName과 wage를 매개변수로 하는 생성자로 default 값 세팅하기
회사 이름 default: chocolateFactory
사원 이름 default: zorba
취미 default: coding
결혼 유/무 default: false
입사일 default: Tue Nov 20 01:10:05 KST 2018
직책 이름 default: 연구원
월급 default: 1000000