분류 전체보기138 8.주문 이력 조회 1.OrderItemDto/** * 조회한 주문 데이터 화면에 보낼때 사용 * 주문 상품 정보 담음 */package com.shop.dto;import com.shop.entity.OrderItem;import lombok.Getter;import lombok.Setter;@Getter @Setterpublic class OrderItemDto { public OrderItemDto(OrderItem orderItem, String imgUrl){ this.itemNm = orderItem.getItem().getItemNm(); this.count = orderItem.getCount(); this.orderPrice = ord.. WEB JAVA SPRING/PROJECT 2023. 9. 12. 7.주문 기능 고객이 상품 주문하는 기능 구현 1.OutOfStiockException/** * - 고객이 상품을 주문하면 현재 상품의 재고에서 주문수량만큼 재고를 감소시켜야한다. * - 주문수량 > 재고수량 == 주문x 이럴때 발생시킬 exception 정의 */package com.shop.exception;public class OutOfStiockException extends RuntimeException { public OutOfStiockException(String message){ super(message); }} 2.Item//상품 재고 감소 로직//엔티티 안에 비즈니스 로직 작성하는 이유 : 코드의 재사용, 데이터의 변경 포인트 한군.. WEB JAVA SPRING/PROJECT 2023. 9. 12. 6.메인 화면 1.MainItemDto/*** 메인 페이지에서 상품을 보여줄때 사용*/package com.shop.dto;import com.querydsl.core.annotations.QueryProjection;import lombok.Getter;import lombok.Setter;@Getter @Setterpublic class MainItemDto { private Long id; private String itemNm; private String itemDetail; private String imgUrl; private Integer price; @QueryProjection //Querydsl 결과 조회시 MainItemDto .. WEB JAVA SPRING/PROJECT 2023. 9. 12. 5.상품 관리하기 : Querydsl 등록된 상품 리스트를 조회할 수 있는 화면 만들기상품을 조회하는 조건 설정,페이징기능,선택한 상품 상세 페이지로 이동 조회조건1.상품 등록일2.상품 판매 상태3.상품명 or 상품 등록자 아이디조회조건이 복잡한 화면은 Querydsl을 이용해 조건에 맞는 쿼리를 동적으로 쉽게 생성하자. 1.사용자 정의 인터페이스 작성 2.사용자 정의 인터페이스 구현 3.Spring Data Jpa 리포지토리에서 사용자 정의 인터페이스 상속 1.ItemSearchDto/** * 상품 조회 조건을 가지고 있다. */@Getter @Setterpublic class ItemSearchDto { private String searchDateType; //현재 시간과 상품 .. WEB JAVA SPRING/PROJECT 2023. 9. 12. 4.상품 수정하기 상품 등록 기능을 구현하였으니상품 상세 페이지 진입 및 상품 데이터 수정하는 기능 구현하자1.ItemService//등록된 상품을 불러오는 메소드@Transactional(readOnly = true) //상품 데이터를 읽어오는 트랜잭션을 읽기전용으로 -> 더티체킹(변경감지)수행하지 않아서 성능 향상public ItemFormDto getItemDtl(Long itemId){ List itemImgList = itemImgRepository.findByItemIdOrderByIdAsc(itemId); List itemImgDtoList = new ArrayList(); //조회한 ItemImg 엔티티를 ItemImgDto 객체로 만들어서 리스트에 추가 for (I.. WEB JAVA SPRING/PROJECT 2023. 9. 12. 3.상품 등록하기 @ManyToOne : itemimg의 입장에서 하나의 item에 여러개의 사진 가능 @JoinColumn(name = "item_id") //fk 1.ItemImg 엔티티package com.shop.entity;import lombok.Getter;import lombok.Setter;import javax.persistence.*;/** * 상품 이미지 엔티티 */@Entity@Getter @Setter@Table(name = "item_img")public class ItemImg { @Id @Column(name="item_img_id") @GeneratedValue(strategy = GenerationType.A.. WEB JAVA SPRING/PROJECT 2023. 9. 12. 2.연관관계 매핑 실선 : 부모의 키가 일반키점선 : 부모의 키가 pk (한쪽만 pk) item의 입장에서 order_item, cart_item은 일대다 하나의 상품은 여러 주문 상품, 장바구니에 들어갈 수 있다. 반대로order_item, cart_item의 입장에서 item은 다대일하나의 상품은 여러 주문 상품+ 여러 장바구니의 장바구니 상품 으로 들어갈 수 있다 Item.java@Id @Column(name = "item_id") //테이블에 매핑될 컬럼의 이름//item클래스의 id변수와 item테이블의 item_id컬럼이 매핑되도록@GeneratedValue(strategy = GenerationType.AUTO) private Long id; //상품코드O.. WEB JAVA SPRING/PROJECT 2023. 9. 12. 1.로그인/로그아웃 Memberpackage com.shop.entity;import com.shop.constant.Role;import com.shop.dto.MemberFormDto;import lombok.Getter;import lombok.Setter;import lombok.ToString;import org.springframework.security.crypto.password.PasswordEncoder;import javax.persistence.*;@Entity@Table(name="member_id")@Getter@Setter@ToStringpublic class Member extends BaseEntity { @Id @Column(name .. WEB JAVA SPRING/PROJECT 2023. 9. 12. 스타트 스프링 부트 -1~5장 1장 스프링 부트 기존 스프링프레임워크(불편한설정+버전충돌) 없앰 + 빠르고 쉬운 서버환경/테스트 환경 =>자동화된 라이브러리, xml 없음 ,내장 톰캣 ,자동설정 -기본출력 package com.sesac.boot1.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /* * 스프링빈으로 등록 * jsp,html파일 생성안해도 바로 브라우저로 전달가능 * */ @RestController public class SampleController { //주소 이렇게 @GetMapping("/hello") public Str.. WEB JAVA SPRING/PROJECT 2023. 8. 28. 객체지향 프로그래밍의 4가지 특징 1.Encapsulation 캡슐화 관련있는 데이터들과 함수(알고리즘)들을 하나의 묶음으로 정리하는 것. 서로 관련된 데이터들과 함수들을 캡슐 형태에 넣어서 포장하는 것을 의미한다. 여기서 객체의 필드는 데이터에 해당하고, 메소드는 함수 또는 알고리즘에 해당한다. - 서로 연관된 데이터들과 함수 또는 알고리즘들을 하나의 묶음으로 정리하는 것 - 객체를 캡슐로 싸서 객체의 실제 구현 방법을 외부에 감춰서 객체의 내부를 보호한다. 2.Inheritance 상속 부모 클래스에서 사용하는 기존의 코드를 자식 클래스에서 재활용하기 위한 기법이다. 이미 작성된 부모 클래스를 물려 받아서 새로운 자식 클래스를 생성하는 방법이다. 자식 클래스는 부모 클래스의 모든 속성과 동적을 물려 받아 사용한다. 자식 클래스에서는 .. WEB JAVA SPRING/etc 2023. 8. 28. MVC model2 //DispatcherServlet Model 데이터를 처리하는 영역(어떠한 동작을 수행하며 public 함수로만 이루어진다.) View 컨트롤러의 처리결과를 화면에 생성 Controller 클라이언트의 요청 처리 사용하는 이유? 사용자 인터페이스로부터 비즈니스 로직을 분리한다. (=개발자, 웹 퍼블리셔의 영역 분리 가능) > 애플리케이션의 시작적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 고칠 수 있다. > view 교체, 변경 쉬워서 유지보수가 유용하다. service 핵심 비즈니스 로직 구현 repository (= DAO : Data Access Object) - Spring data JPA방식 - 도메인 객체를 DB에 접근하여 저장하고 관리 (저장소) - interface로 사용 domain (= VO : Val.. WEB JAVA SPRING/etc 2023. 8. 28. Spring 어노테이션 본래 주석이란 뜻으로, 인터페이스를 기반으로 한 문법이다. 주석과는 그 역할이 다르지만 주석처럼 코드에 달아 클래스에 특별한 의미를 부여하거나 기능을 주입할 수 있다. - 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보 제공 - 소프트웨어 개발 환경이 빌드나 배포시 코드를 자동으로 생성할 수 있도록 정보 제공 - 런타임에 특정 기능을 실행하도록 정보를 제공 자바 코드에 적용되는 내장 어노테이션 @Override 선언한 메서드가 오버라이드 되었다는 것을 나타냅니다. 만약 상위(부모) 클래스(또는 인터페이스)에서 해당 메서드를 찾을 수 없다면 컴파일 에러를 발생 시킵니다. public class Animal { public void speak() { } public String getType() { re.. WEB JAVA SPRING/etc 2023. 8. 28. 이전 1 ··· 5 6 7 8 9 10 11 12 다음