프로젝트/스프링 부트 쇼핑몰 프로젝트 with jpa

    [스프링 부트 쇼핑몰 프로젝트 with jpa] Thymeleaf 소개

    [스프링 부트 쇼핑몰 프로젝트 with jpa] Thymeleaf 소개

    Thymeleaf is a modern server-side Java template engine for both web and standalone environments. 타임리프는 웹과 독립환경 모두를 위한 최신 서버 사이드 자바 템플릿엔진 입니다. 장점 1. natural templates JSP의 경우 엔더링을 하지 않으면 웹프라우저에 파일을 띄우면 JSP문법이 화면에 나타나 정상적인 화면 출력 결과를 볼 수 없습니다. Thymeleaf로 작성된 HTML은 서버사이드 렌더링을 하지 않고 브라우저에 띄워도 정상적인 화면을 볼 수 있습니다. Thymeleaf 파일 제작 Hello Thymeleaf! Hello Chordpli! 2. Integrations galore 인텔리제이, 이클립스, 스프링 등..

    [스프링 부트 쇼핑몰 프로젝트 with jpa] Spring DATA JPA Querydsl

    [스프링 부트 쇼핑몰 프로젝트 with jpa] Spring DATA JPA Querydsl

    JPA Querydsl Querydsl은 소스코드로 SQL문을 문자열이 아닌 코드로 작성하기 때문에 컴파일러의 도움을 받을 수 있다. 장점 고정된 SQL문이 아닌 조건에 맞게 동적으로 쿼리 생성 가능 비슷한 쿼리를 재사용하며 제약 조건 조립 및 가독성 향상 자바 소스로 작성하여 컴파일 시점에 오류 발견 가능 IDE의 자동완성 기능을 이용할 수 있어 생산성 향상 가능 Querydsl 설정 pom.xml com.querydsl querydsl-jpa 5.0.0 com.querydsl querydsl-apt 5.0.0 com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.querydsl.apt.jpa.JPAAnnota..

    [스프링 부트 쇼핑몰 프로젝트 with jpa] @Query 어노테이션

    [스프링 부트 쇼핑몰 프로젝트 with jpa] @Query 어노테이션

    @Query 어노테이션 Spring Data JPA에서 제공하는 @Query 어노테이션을 이용하면 SQL과 유사한 JPQL(Java Persistence Query Language)라는 객체지향 쿼리 언어를 통해 복잡한 쿼리도 처리가 가능하다. SQL문법와 유사하여 기존 SQL 사용자들 역시 쉽게 배울 수 있다. SQL과 차이점 SQL의 경우 데이터 베이스의 테이블 대상으로 쿼리 수행. JPQL은 앤티티 객체를 대상으로 쿼리를 수행 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리 JPQL은 SQL을 추상화 해서 사용하기 때문에, 특정 SQL에 의존하지 않는다. JPQL로 작성됐다면 데이터베이스가 변경되어도 애플리케이션이 영향을 받지 않는다. @Query를 이용한 검색 처리 예제 import org...

    [스프링 부트 쇼핑몰 프로젝트 with jpa] 쿼리메소드

    [스프링 부트 쇼핑몰 프로젝트 with jpa] 쿼리메소드

    쿼리 메소드 사용법 쿼리메소드는 Repository 인터페이스에 간단한 네이밍룰을 이용하여 메소드를 작성하여 원하는 쿼리를 실행할 수 있다. find + (엔티티 이름) + By + 변수이름 쿼리 메소드 예제 Repository package com.shop.repository; import com.shop.entity.Item; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; public interface ItemRepository extends JpaRepository { List findByItemNm(String itemNm); // 엔티티명은 생략 가능하므로 Item생략 } 테스트 코드 pub..

    [스프링 부트 쇼핑몰 프로젝트 with jpa] Repository 설계

    [스프링 부트 쇼핑몰 프로젝트 with jpa] Repository 설계

    상품 Repository 설계 com.shop.repository패키지 생성 후 ItemRepository 인터페이스 생성 package com.shop.repository; import com.shop.entity.Item; import org.springframework.data.jpa.repository.JpaRepository; public interface ItemRepository extends JpaRepository { } JpaRepository를 상속받는 ItemRepository 작성. JpaRepository는 2개의 제네릭 타입을 사용하므로 첫 번째에는 엔티티 타입 클래스를 넣고, 두 번째는 기본키 타입을 넣어줍니다. JpaRepository에는 기본적인 CRUD 및 페이징 처리를..

    [스프링 부트 쇼핑몰 프로젝트 with jpa] 상품 엔티티 설계

    [스프링 부트 쇼핑몰 프로젝트 with jpa] 상품 엔티티 설계

    상품 엔티티 설계 엔티티 데이터베이스의 테이블에 대응하는 클래스. @Entity가 붙은 클래스는 JPA에서 관리하며 엔티티라고 부릅니다. Entity클래스는 반드시 기본키(@Id)를 가져야 합니다. 상품의 기본적인 정보를 담은 Item 클래스 생성 com.shop.entity 패키지 생성 후 Item 클래스 생성 package com.shop.entity; import com.shop.constant.ItemSellStatus; import lombok .Getter; import lombok.Setter; import lombok.ToString; import java.time.LocalDateTime; // 롬복을 사용하여 어노테이션으로 Getter/Setter/ToString 처리 @Getter @..

    [스프링 부트 쇼핑몰 프로젝트 with jpa] 프로젝트 생성

    [스프링 부트 쇼핑몰 프로젝트 with jpa] 프로젝트 생성

    프로젝트 생성 프로젝트 설정 https://start.spring.io/에 접속하여 스프링 부트로 프로젝트를 생성한다. 교재에서는 java 11, boot 2.5.2 버전을 사용하고 있지만 현재 설치되어 있는 버전인 java 8(1.8), 그리고 spring initializr에서 제공하는 최신 버전인 2.7.3 버전을 선택했다. 의존성 설정 Spring Web Lombok Thymeleaf Spring Data JPA MySQL Driver H2 Database 책 내용이 진행되면서 필요한 의존성들은 따로 추가하는 것 같다. application.properties설정 #애플리케이션 포트 설정 server.port=80 #MySQL연결설정 spring.datasource.driver-class-name..