Java/Spring 9

Spring Boot에서 Native Query 사용

프로젝트를 진행하면서 내가 직접 쿼리를 사용해 구현하고 싶은 것이 생길 때 사용하는 것이 JPQL or NativeQuery입니다.코드 관점으로 보면 두 개의 개념은 비슷합니다. 원래 JPA만 사용할 경우 메서드 명명규칙에 따라서 자동으로 쿼리를 생성해 주는데, 이게 아닌 개발자가 직접 원하는 결과를 반환하는 쿼리를 작성하는 것입니다. 다만, 차이점이라고 하면 쿼리 작성 요령이 다릅니다.ex) "user"라는 테이블에서 모든 값을 가져오고 싶을 때1. JPQL의 경우@Query(value = "SELECT * FROM User WHERE id = ?1")Optional selectAll(String id); 2. Native Query의 경우@NativeQuery(value = "SELECT * FROM..

Java/Spring 2025.05.03

JavaScript -> RestController POST 통신 오류

Spring Boot 프로젝트를 하던 도중 프론트-백 분리 구조를 활용해서 코드 작성 중 이유를 알 수 없는 오류가 발생하고 있었습니다그 어떤 로그도 안 찍히길래 뭔 문제인가... 하루를 고민했는데 해결방법을 찾았습니다. 1. 오류의 원인일단, 문제가 뭐였냐면 javascript 단에서 ajax로 post url 요청을 controller 쪽으로 하는 상황이었는데, 회원가입 성공을 했을 경우 요청이 controller쪽에 닿지도 못하는 문제가 발생했었습니다. 근데 이게 로그도 찍히는 게 아니고.. 오류 문구도 없으니까 도대체 뭐가 문제인지를 몰랐었는데.. javascript 코드 쪽은 문제가 없어 보였습니다. (아래는 제 프로젝트의 js 코드입니다.)$.ajax({ type: "POST", u..

Java/Spring 2025.04.24

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 하지만 이런 키워드..

Java/Spring 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..

Java/Spring 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 리소스..

Java/Spring 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 어노테이션을 이상한 거를 쓰고 있어서 ..

Java/Spring 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..

Java/Spring 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..

Java/Spring 2022.03.10

Spring 개발환경 구축하기

Spring을 공부하기 위해서 개발환경을 구축할려고 하였는데 생각보다 에러가 많고 힘들었어서 이 포스팅에다가 정리를 해놓을려고 한다. 이 글을 보기 전에 자바를 다운로드 하셔야합니다. 구글에다가 검색을 해보면 다운로드하고 환경 변수를 설정하는 방법이 다 나와있습니다. 제가 추천하는 글을 이 글입니다. (자바 11버전 다운로드) https://crazykim2.tistory.com/478 [JAVA] Window10의 JAVA SE 11 설치하기 안녕하세요 포스팅이 늦은 것 같지만 이번에 윈도우를 포맷하면서 자바를 다시 설치하게 되었습니다 자바 개발을 처음하거나 자바를 설치한지 오래되어서 기억이 안 나는 분들을 위해 자바 설 crazykim2.tistory.com 1. Spring 다운로드하기 https:..

Java/Spring 2022.01.26