상세 컨텐츠

본문 제목

스프링 부트로 시작하는 웹 서비스_4

JSP·자바·코틀린

by 김일국 2021. 8. 13. 19:40

본문

### 작업한 소스 깃 : https://github.com/miniplugin/kimilguk-springboot2

### 작업결과 배포 클라우드헤로쿠 : https://kimilguk-springboot2.herokuapp.com/

지난 포스트에서 회원가입 CRUD 를 현재 작업된 게시판처럼 RestAPI방식이 아닌,

일반 스프링 방식으로 처리 하였습니다.

### 20210814() 작업예정
- 게시판 첨부파일 기능 추가.
- 에러 페이지처리 기능.
- h2 데이터에비스에 추가로 postgresql 도 지원가능하게 추가예정.

### 20210813() 작업
- 참고: 회원관리기능에서 username userid 와 같은 역할.
- 회원관리 기능 CRUD 추가(admin 관리자 ROLE_ADMIN 에서 회원등록 권한 추가)

 

RestAPI방식을 그림으로 설명하면, 아래와 같습니다. 출처: https://www.youtube.com/watch?v=9SGDpanrc8U 

MVC구조가 아래 3개의 레이어로 구성됩니다. Client는 [V]iew단

1. API레이어 [C]ontroller단, 2. Service레이어, 3. DataAccess레이어 [M]odel단

출처:  https://www.youtube.com/watch?v=9SGDpanrc8U

그리고, 지금까지 h2 메모리 DB를 사용했으므로, 헤로쿠 클라우드에서 지원하는 postgreSQL로도 사용해 보려고 합니다.

인텔리J 개발툴에서 필요한 플러그인을 설치 해 봅니다. (Database Navigator 아래)

아래 플러그인 사용보다는 바로 아래의 PGAdmin 사용을 추천합니다.

하지만, 굳이 위 플러그인을 설치 하지 않고, 포스트그레시큐엘 DB의 PGAdmin 이라는 무료 프로그램도 좋습니다.(아래)

### 회원등록시 중복 ID체크용 쿼리 생성시, JPA에서 유니크 키 비교전 @Entity 자바테이블 매핑 설정(아래)

Hibernate(JPA)에서 Entity 클래스에서 Unique 설정하려면

한개 이상의 컬럼을 unique하려면(아래)

@Column(name="column" , unique=true)
int column;

두개 이상의 컬럼을 unique하려면(아래)

@Entity
@Table(
name="entities",
 uniqueConstraints={
   @UniqueConstraint(
   columnNames={"column1","column2"}
   )
  }
)
@Data
public class Entity1 {
@Column(name="column1")
int column1;
@Column(name="column2")
int column2;
}

### 회원등록시 중복 ID체크용 쿼리를 스프링 부트에서 사용한 예,

@Query("SELECT p FROM SimpleUsers p where p.username = :username")
SimpleUsers findByName(@Param("username") String username);

관련글 더보기

댓글 영역