사랑하애오
article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) Querydsl
JAVA/SpringBoot Shoppingmall 2022. 6. 24. 10:13

Querydsl 1. Querydsl SQL 쿼리문을 문자열이 아닌 소스코드로 작성하도록 지원하는 빌더 API (프레임워크) 2. Querydsl 의 장점 ① 고정된 SQL 문이아닌 조건에 맞게 동적으로 쿼리 생성 가능 ② 제약 조건 조립 및 가독성 향상 ③ 컴파일 시점에 오류를 발견할 수 있음 ④ 자동 완성 기능으로 인한 생산성 향상 3. Querydsl 의존성 주입 com.querydsl querydsl-jpa ${querydsl.version} com.querydsl querydsl-apt ${querydsl.version} 4. Qdomain 플러그인 추가 엔티티를 기반으로 접두사(prefix) 'Q'가 붙는 클래스를 자동으로 생성하는 플러그인 Querydsl 수행 시 엔티티가 아닌 Qdomain..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) @Query 어노테이션
JAVA/SpringBoot Shoppingmall 2022. 6. 22. 13:25

@Query 어노테이션 1. Spring Data JPA @Query 어노테이션 SQL과 유사한 JPQL (Java Persistence Query Language) 라는 객체지향 쿼리 언어를 통해 복잡한 쿼리 처리를 지원 JPQL - 테이블이 아닌 엔티티 객체를 대상으로 검색하는 객체지향 쿼리, SQL 추상화로 인해 특정 db sql 에 의존하지 않음 2. @Query 를 이용한 조회 상품 상세 설명(itemDetail)으로 상품을 조회하고 결과는 가격순으로 정렬 select "엔티티명" = select "*" @Param 을 통해 매개변수로 넘어온 값을 JPQL에 들어갈 변수로 지정 3. @Query 를 이용한 조회 테스트 수행 ItemDetail 컬럼 값에 "테스트 상품 상세 설명" 문자열이 포함되..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 쿼리 메서드 (Query Method)
JAVA/SpringBoot Shoppingmall 2022. 6. 22. 13:22

쿼리 메소드 (Query Method) 1. 쿼리 메소드 (Query Method) Spring Data JPA 에서 제공하는 핵심 기능 중 하나로 Repository 인터페이스에 간단한 네이밍 룰에 따라 메소드를 작성하면, 원하는 쿼리를 실행하도록 지원하는 메소드 2. 쿼리 메소드 문법 find 문법 find + (엔티티 이름) + By + 변수이름 3. 쿼리 메소드 Sample 및 JPQL snippet KeywordSampleJPQL snippet Distinct findDistinctByLastnameAndFirstname select distinct … where x.lastname = ?1 and x.firstname = ?2 And findByLastnameAndFirstname … wher..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 상품 Repository 설계
JAVA/SpringBoot Shoppingmall 2022. 6. 22. 13:17

Section 1. 상품 Repository 설계 1. Spring Data JPA Spring Data JPA 개념(링크달기) 2. 상품 Repository 생성 com.shop.repository.ItemRepository.java 생성 DAO 역할을 수행하는 Repository 인터페이스 JpaRepository 클래스 extends package com.shop.repository; import org.springframework.data.jpa.repository.JpaRepository; import com.shop.entity.Item; public interface ItemRepository extends JpaRepository { } 3. application-test.propertie..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 상품 Entity 설계
JAVA/SpringBoot Shoppingmall 2022. 6. 22. 12:35

상품 Entity 설계 1. 상품 판매 상태 enum 클래스 enum 클래스에 대한 개념(링크달기) com.shop.constant.ItemSellStatus.java 생성 상품의 현재 판매 상태 (판매, 품절)를 나타내는 상수값 (SELL, SOLD_OUT) package com.shop.constant; public enum ItemSellStatus { SELL, SOLD_OUT } 2. 상품 클래스 생성 _ Ver 1 com.shop.entity.Item.java 생성 상품 판매 상태의 값은 ItemSellStatus 열거형의 값을 가짐 @Entity @ToString @Table(name = "item") public class Item { private Long id;// 상품코드 privat..

article thumbnail
[VSCODE] JPA 개념 및 원리
JAVA/SpringBoot Shoppingmall 2022. 6. 21. 15:05

JPA 1. JPA (Java Persistence API) Java 객체와 관계형 DB 사이를 매핑하는 ORM 기술 표준 인터페이스 (=기술 표준) 이므로 실제 구현체는 Hibernate 등등 2. JPA 장점 특정 데이터베이스에 종속되지 않음 - 데이터베이스마다 쿼리문이 조금씩 다르기 때문에 데이터베이스 변경에 어려움이 많음, 하지만 JPA 는 추상화한 데이터 접근 계층을 제공하므로 설정 파일에 사용 데이터베이스만 지정하면 됨 객체 지향적 프로그래밍 및 생산성 향상 - 개발자가 직접 SQL을 작성하는 데이터베이스 설계 중심에서 Java 객체에 집중하도록 지원 - 테이블 컬럼 수정 시 매핑된 클래스만을 변경하면 적용됨 3. JPA 단점 복잡한 쿼리 처리 불가 자동으로 생성되는 쿼리로 인해서 개발자가 의..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 개발 환경 설정
JAVA/SpringBoot Shoppingmall 2022. 6. 21. 14:08

Spring Boot Initializr Spring Boot 환경 구축 참고 (VSCODE, start(쓰니는 이거 안씀) OPEN_JDK(18)) Spring Initializr(maven) 에서 아래와 같이 설정 vscode springboot extension을 통해 빠르게 mvn 패키지를 생성할 수 있다. https://start.spring.io/ 위의 사이트를 통해서도 프로젝트를 생성할 수 있는데 압축파일을 풀고 열어야하는 약간의 번거로움이 있다. 프로젝트를 생성했으므로 생성한 프로젝트를 열어서 기본적인 세팅을 할 것인데 위와 같이 pom.xml에 아까 생성할때 넣었던 dependency들을 볼 수 있으며, 추후에 필요한 dependency를 pom.xml에 추가해 사용할 것이다. 이제 잘 ..