▪️ entity는 테이블을 만든다. -- 실제로 db와 관련이 있다. ▪️ dto는 컨트롤러, 서비스 사이에서 정보를 주고받을때 정보를 담고, 테이블을 만들지 않는다.
com.shop.vo 패키지를 생성한다.실제로 db와 관련있는 것
▪️ member와 cart는 1:1이기 때문에 일대일 대응 관계이다. ▪️ Cart는 다수, Item도 다수이기 때문에 중간에 (다:1, 1:다) 로 거쳐주는 CartItem이 필요하다. ▪️ Cart, Item, Member, Order를 테이블로 구분지을 수 있다.
▪️entitiy에 있는 java파일들을 복사해서 vo에 넣는다.
com.shop.entitiy에 있는 Cart, Item, Member, Order 파일
💡JPA 삭제 -- ( JPA 사용 X )
jpa 삭제
📃Member.java
▪️ JPA를 삭제하고 정리한 소스이다.
package com.shop.vo;
import com.shop.constant.Role;
import com.shop.dto.MemberFormDto;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.security.crypto.password.PasswordEncoder;
import javax.persistence.*;
@Getter @Setter
@ToString
public class Member {
private Long id;
private String name;
private String email;
private String password;
private String address;
private Role role;
}
▪️ 객체간 주고받을 때, _를 사용하는 snake_case표기법이 아닌 camelCase를 사용한다. ex) member_id -> memberId (camelCase) ▪️ 자바에서 객체로 인식하려면 하단처럼 바꿀 것
▪️ Ctrl + Shift + O를 누르면 사용하지 않는 라이브러리들은 자동으로 삭제된다.
package com.shop.vo;
import com.shop.constant.Role;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter @Setter
@ToString
public class Member {
private Long memberId;
private String name;
private String email;
private String password;
private String address;
private Role role;
}
▪️ @Getter @Setter @ToString을 모두 사용한다면 @Data로 바꿀 수 있다.
package com.shop.vo;
import com.shop.constant.Role;
import lombok.Data;
@Data
public class Member {
private Long memberId;
private String name;
private String email;
private String password;
private String address;
private Role role;
}
💡HeidiSQL에서 db 확인하기
▪️ db에는 있으나, Member클래스에는 없는 정보를 가져온다. ▪️ reg_time, update_time, create_by, modified_by가 존재하지 않는다.
▪️ reg_time, update_time은 db에서 데이터 유형이 DATETIME이다. ▪️ mysql datetime == java timestamp 이므로 timestamp타입으로 가져온다.
Timestamp 타입을 사용한다.
▪️ 자바객체, db객체를 가져올 거기때문에 java.sql 라이브러리를 가져온다.
package com.shop.vo;
import java.sql.Timestamp;
import com.shop.constant.Role;
import lombok.Data;
@Data
public class Member {
private Long memberId;
private String name;
private String email;
private String password;
private String address;
private Role role;
private Timestamp regTime;
private Timestamp updateTime;
private String createdBy;
private String modifiedBy;
}
▪️ 동일한 방법으로 com.shop.entitiy에 있는 Cart, Item, Order 파일도 추가한다.
📃Cart.java
package com.shop.vo;
import java.sql.Timestamp;
import lombok.Data;
@Data
public class Cart {
private Long cartId;
private String memberId;
private Timestamp regTime;
private Timestamp updateTime;
private String createdBy;
private String modifiedBy;
}
📃db
📃Item.java
package com.shop.vo;
import java.sql.Timestamp;
import com.shop.constant.ItemSellStatus;
import lombok.Data;
@Data
public class Item {
private Long itemId;
private String itemNm;
private int price;
private int stockNumber;
private String itemDetail;
private ItemSellStatus itemSellStatus;
private Timestamp regTime;
private Timestamp updateTime;
private String createdBy;
private String modifiedBy;
}
댓글