본문 바로가기
2024 웹

webProject2

by concho 2024. 2. 29.

MariaDB 의 sequence default value

생성방법 :

= 을 넣어야 되는지 잘 기억안남 해봐야 알듯

CREATE SEQUENCE s3 
START WITH -100 
INCREMENT BY 10 
MINVALUE=-100 
MAXVALUE=1000
CACHE 20;

 


1. GET POST 차이
👉 GET 방식 : 어떠한 정보를 가져와서 조회하기 위해 사용되는 방식

▪ URL에 변수를 포함시켜 요청한다.
▪ 데이터를 header를 포함하여 전송한다.
▪ URL에 데이터가 노출되어 보안에 취약하다.
▪ 캐싱이 가능하다. (캐싱: 한번 접근후, 똑같은 요청을 할 시 빠르게 접근하기 위해 레지스터에 데이터를 저장시키는것)


👉  POST 방식: 데이터를 서버로 제출하여 추가 또는 수정하기 위해서 데이터를 전송하는 방식

▪ URL에 변수에 변수를 노출하지 않고 요청을 한다.
▪ 데이터를 Body에 포함시킨다.
▪ URL에 데이터가 노출되지 않아서 기본 보안이 설정되어 있다.
▪ 전송하는데 길이 제한이 없고 캐싱이 불가능하다.

 


 

1. DAO(Data Access Object)

DAO는 실제로 DB의 data 접근하기 위한 객체입니다.

  • 실제로 DB에 접근하여 data를 삽입, 삭제, 조회, 수정 등 CRUD 기능을 수행합니다.
  • Service와 DB를 연결하는 고리 역할을 합니다.

2. DTO(Data Transfer Object)

DTO는 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(Java Beans)입니다.

  • DTO는 즉, getter/setter 메서드만 가진 클래스를 의미합니다.
  • DB에서 데이터를 얻어서 Service나 Controller 등으로 보낼 때 사용합니다.
  • 즉 엔티티를 DTO 형태로 변환한 후 사용합니다.

객체 - 테이블 맵핑 : @Entity, @Table

필드 - 컬럼의 팹핑 : @Column

기본키의 맵핑 : @Id

조인 맵핑 : @ManyToOne, @JoinColumn

@Entity

@Entity 어노테이션을 클래스에 선언하면 그 클래스는 JPA가 관리합니다.

그러므로 DB의 테이블과 Class(VO, DTO)와 맵핑한다면 반드시 @Entity를 붙여주어야 합니다.

 

@Entity가 붙은 클래스에는 다음 제약사항이 필요합니다.

1. 필드에 final, enum, interface, class를 사용할 수 없습니다.

2. 생성자중 기본 생성자가 반드시 필요합니다.

 

@Entity의 속성

1. name : 엔티티 이름을 지정합니다. 기본값으로 클래스 이름을 그대로 사용합니다.

 

 

@Table

@Table 어노테이션은 맵핑할 테이블을 지정합니다.

 

@Table의 속성

1. name : 매핑할 테이블의 이름을 지정합니다.

2. catalog : DB의 catalog를 맵핑합니다.

3. schema : DB 스키마와 맵핑합니다.

4. uniqueConstraint : DDL 쿼리를 작성할 때 제약 조건을 생성합니다.

 

 

@Column

@Column  어노테이션은 객체 필드와 DB 테이블 컬럼을 맵핑합니다.

@Column의 속성

1. name : 맵핑할 테이블의 컬럼 이름을 지정합니다;

2. insertable : 엔티티 저장시 선언된 필드도 같이 저장합니다.

3. updateable : 엔티티 수정시 이 필드를 함께 수정합니다.

4. table : 지정한 필드를 다른 테이블에 맵핑할 수 있도록 합니다.

5. nullable : NULL을 허용할지, 허용하지 않을지 결정합니다.

6. unique : 제약조건을 걸 때 사용합니다.

7. columnDefinition : DB 컬럼 정보를 직접적으로 지정할 때 사용합니다.

8. length : varchar의 길이를 조정합니다. 기본값으로 255가 입력됩니다.

9. precsion, scale : BigInteger, BigDecimal 타입에서 사용합니다.  각각 소수점 포함 자리수, 소수의 자리수를 의미합니다.

 

@Id

JPA가 객체를 관리할 때 식별할 기본키를 지정합니다.




현제 Controller 내부 GetMap

@GetMapping("/openPage/pageHome")
public String getHome(){
    return "openPage/pageHome";
}
@GetMapping("/openPage/pageSignUp")
public String getPageSignUp(){
    return "openPage/pageSignUp";
}
@GetMapping("/openPage/pageLogin")
public String getPageLogin(){
    return "openPage/pageLogIn";
}
@GetMapping("/openPage/pageCommunityTm")
public String getPageCommunityTm(){
    return "openPage/pageCommunityTm";
}
@GetMapping("/index")
public String getIndex(){
    return "index";
}

'2024 웹' 카테고리의 다른 글

git 연동 이클립스  (0) 2024.04.05
semi project1  (0) 2024.04.04
웹 프로잭트 설계1  (0) 2024.02.21
집컴 세팅  (0) 2024.01.31
Git 다운로드 & 이클립스 연동, 이메일 설정  (0) 2024.01.30

댓글