Notice
Recent Posts
Recent Comments
Link
«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

helloworld

설계한 DB를 바탕으로 도메인클래스만들기 본문

toyproject

설계한 DB를 바탕으로 도메인클래스만들기

hellojava 2023. 9. 2. 19:28

테이블 생성 및 간단한 쿼리문 등은 JPA를 바탕으로 DB를 관리 할 것이다.

 

전 글에 포스팅한 설계한 DB를 바탕으로 도메인을 만들어 테이블을 생성해보자..

 

우선 얽힌 것들이 적은 Member 테이블부터 만들 것이다.

 

우선 member로 디렉토리를 만든 후, 나는 mvc패턴 모델2방식으로 작업을 할 것이기 때문에 컨트롤러, 서비스, 리파지토리로 분류를 해놓았다. MVC2패턴이란 model과 view 단을 controller 단에서 연결하고 흐름을 제어하는 방식이다. 즉 model과 view 사이의 정보를 교환하는 방식이다.

그럼 model은 뭐고 view는 뭐냐면

view는 단어 자체에서 알 수 있듯이 보여지는 부분이다. 쉽게 말해 front단이라고 생각해도 될것 같다. html이나 jsp 같은것을 생각하면 되는 것 같다.

model은 소프트웨어의 응용과 그와 관련된 고급 클래스내의 논리적 데이터 기반구조이다. 즉

view단에서 데이터를 가져오든 보내든 하면 model단에서 데이터를 처리하는 곳이라고 봐도 될 것 같다. 

 

아무튼 이렇게 디렉토리를 만들어 놓고 domain의 member클래스를 보면 

 

@NoArgsConstructor
@AllArgsConstructor
@Entity
@Data
public class Member {
@Id
@GeneratedValue
private long member_num; //고객 아이디 번호 pk

@Column(name = "id", nullable = false)
private String id; //고객 아이디

@Column(name = "password", nullable = false)
private String password; // 비밀번호

@Column(name = "name", nullable = false)
private String name; //이름

@Column(name = "zip_code", nullable = false)
private String zip_code;// 우편번호

@Column(name = "address", nullable = false)
private String address; // 주소

@Column(name = "phone", nullable = false)
private String phone; // 전화번호

@Column(name = "email", nullable = false)
private String email;// 이메일

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "join_date")
private Date join_date = new Date(); //등록일

@ColumnDefault("1")
@Column(name = "status")
private int status = 1; // 회원상태 탈퇴시 0 활동시 1

@ColumnDefault("0")
@Column(name = "card")
private int card = 0; // 카드등록시1 미등록시 0
}

이러한 구조로 되어있다.

 

lombok을 사용했기 때문에 게더세더나 생성자같은 것들은 어노테이션으로 처리했다.

 

@Entity가 붙으면 JPA가 클래스를 관리한다.

이 어노테이션을 사용하면 주의할 점이 기본생성자로 접근하기 때문에 기본생성자를 만들어 놔야한다.

final이나 enum, interface, inner클래스는 사용할수 없다.

 

이렇게 도메인을 만들어 놓고 프로젝트를 실행시키면

 

Hibernate: create table member (member_num number(19,0) not null, address varchar2(255 char) not null, card number(10,0) default 0, email varchar2(255 char) not null, id varchar2(255 char) not null, join_date timestamp, name varchar2(255 char) not null, password varchar2(255 char) not null, phone varchar2(255 char) not null, status number(10,0) default 1, zip_code varchar2(255 char) not null, primary key (member_num))

 

테이블을 맛있게 만들어준다. 다른 테이블들도 이런식으로 쭉쭉 만들면 될 것 같다. 

 

아직 JPA를 완벽하게 다루진 못해서 FK맺는법을 비롯하여 자주 구글링을 할 것 같긴하다 ㅎㅎ..

'toyproject' 카테고리의 다른 글

에러 해결하기 ..  (0) 2023.11.02
Spring Security OAuth..  (0) 2023.09.13
로그인 기능  (0) 2023.09.11
프로젝트 DB 설계  (0) 2023.08.31
프로젝트 시~작  (2) 2023.08.31