Java/Spring(7)
-
Spring boot를 이용한 게시판 만들기 - 등록, 수정, 조회 API 만들기(3)
본격적으로 API를 만들기 전에 PostsRepository에 id를 기준으로 정렬하는 쿼리 함수 하나를 작성하도록 하겠습니다. public interface PostsRepository extends JpaRepository { @Query("select p from Posts p order by p.id desc") List findAllDesc(); } JPA에서는 함수명을 지을 때 키워드가 있으면 그 키워드에 맞게 자동으로 SQL을 짜줍니다. 예를 들면 함수명이 findByIdOrderByDateAsc(Long id)면 JPA에서 다음과 같은 쿼리를 만들어줍니다. SELECT * FROM [JpaRepository의 엔티티] WHERE id=?1 ORDER BY date ASC 하지만 이런 키워드..
2022.06.06 -
Spring boot를 이용한 게시판 만들기 - 유저, 게시물 엔티티 및 리포지토리 만들기(2)
일단 시작하기 전에 패키지를 아래와 같이 나누도록 하겠습니다. domain 패키지: 엔티티 및 리포지토리 클래스가 있는 패키지 controller 패키지: 컨트롤러 클래스가 있는 패키지 dto 패키지: DTO 클래스가 있는 패키지 오늘은 엔티티 및 리포지토리 클래스를 만들도록 하겠습니다. 1. 유저 (Users) 엔티티 클래스에는 기본적으로 @Entity와 @Getter, 그리고 NoArgsconstructor 어노테이션을 사용합니다. @Entity: 이 클래스가 엔티티임을 정의함 @Getter: 말 그대로 getter 메소드를 정의함 @NoArgscontructor: 기본 생성자인데, 엔티티 클래스에서는 기본적으로 꼭 필요하다. User 클래스 package com.example.board.web.do..
2022.05.25 -
Spring boot를 이용한 게시판 만들기 - JPA를 이용하여 데이터베이스 연결(1)
저번에는 JPA가 아니라 MyBatis로 연동을 하였는데, 이번에는 JPA를 사용해서 데이터베이스 연결을 하도록 하겠습니다. (쉬움) 일단 Spring Initializr를 이용해서 프로젝트를 생성해 줍니다. https://start.spring.io/ 사이트에 들어가서 위 사진과 같이 세팅을 하고 아래에 GENERATE 버튼을 눌러서 프로젝트를 다운로드합니다. IntelliJ 혹은 Eclipse를 이용해서 다운로드한 프로젝트를 열어줍니다. (저는 개인적으로 인텔리제이를 사용합니다.) 프로젝트를 열게 되면 색인 생성 및 빌드를 하는데, 약 1분에서 2분 정도 기다려주면 끝납니다. 이제 기본적인 세팅을 하겠습니다. src/main/resources 폴더 안에 application.properties 리소스..
2022.05.17 -
Spring boot에서 Controller가 먹지 않는 에러
분명 templates파일에 home.html이라는 파일을 만들고 HomeController클래스를 만들어서 home.html을 반환하는 메소드를 만들었다. import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HomeController { @RequestMapping(value = "/") public String home() { return "home"; } } 그런데 이상하게도 애플리케이션을 실행하였을 때, home.html을 반환하지를 못하였다. 처음에는 Mapping 어노테이션을 이상한 거를 쓰고 있어서 ..
2022.03.24 -
Spring boot 엔티티 매핑
JPA에서는 엔티티와 테이블을 정확하게 매핑하는 것이 중요하다. 그래서 매핑하는 어노테이션들을 숙지하고 사용해야 한다. JPA는 다음과 같은 매핑 어노테이션들을 지원한다. 객체와 테이블 매핑 : @Entity, @Table Primary key 매핑 : @Id 필드와 Column 매핑 : @Column 연관관계 매핑 : @ManyToOne, @JoinColumn @Entity JPA를 이용해서 테이블과 매핑할 클래스는 @Entity라는 어노테이션을 필수로 붙여야 한다. @Entity는 name이라는 속성을 가지고 있는데 이는 JPA에서 사용할 엔티티 이름을 지정한다. 이를 설정하지 않으면 클래스 이름을 그대로 사용한다. @Entity // name 속성x -> Member라는 이름을 사용 public c..
2022.03.21 -
Spring boot를 이용한 게시판 구현하기 - 데이터베이스 연결하기(1)
1. Spring Starter Project 생성 next를 누르면 스프링 부트 의존성 설정을 해야한다. 이렇게 설정을 해준다. 라이브러리의 다운로드가 완료되고 board 프로젝트가 생성된 후에 build.gradle 파일을 열면 위에서 선택한 라이브러리들이 추가되어 있는 것을 알 수 있다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-jdbc' implemen..
2022.03.10