스프링 부트, 입문!

스프링 부트, 입문!

쉽고 빠르게 배우는, 스프링 부트 첫걸음!

17 데이터 CRUD와 SQL 쿼리

# 데이터 CRUD와 SQL 쿼리 ## 미션 데이터 CRUD 과정 중 발생하는 SQL 쿼리를 분석하시오. ![홍팍-스프링-부트-입문-데이터-CRUD-쿼리-미션](http://drive.google.com/uc?export=view&id=1e22578MECIy50rboYc8P9C6J9cmPChff) ## 01:36 JPA 로깅 설정 - application.properties #### ../resources/application.properties ``` # 09강: h2 DB, 웹 콘솔 설정 spring.h2.console.enabled=true # 15강: data.sql 적용을 위한 설정(스프링부트 2.5 이상) spring.jpa.defer-datasource-initialization=true # 17강: JPA 로깅 설정 ## 디버그 레벨로 쿼리 출력 logging.level.org.hibernate.SQL=DEBUG ## 이쁘게 보여주기 spring.jpa.properties.hibernate.format_sql=true ## 파라미터 보여주기 logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE ## 고정 url 설정 spring.datasource.url=jdbc:h2:mem:testdb ``` ## 05:49 ID 자동 생성 전략 #### ../entity/Article ``` package com.example.firstproject.entity; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.ToString; import javax.persistence.*; @Entity @AllArgsConstructor @NoArgsConstructor @ToString @Getter public class Article { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) // 자동 생성 전략 private Long id; @Column private String title; @Column private String content; } ``` ## 10:35 기본 SQL 쿼리 연습 #### 커피 테이블 생성 ``` CREATE TABLE coffee ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, name VARCHAR(255), price INTEGER, PRIMARY KEY (id) ); ``` #### 커피 레코드 추가 ``` -- 단건 추가 INSERT INTO coffee(id, name, price) VALUES (1, '아메리카노', 4100) ; -- 여러건 추가 INSERT INTO coffee(id, name, price) VALUES (2, '라떼', 4600), (3, '모카', 5100), (4, '오늘의 커피', 3800) ; ``` #### 커피 레코드 조회 ``` SELECT id, name, price FROM coffee ; ``` #### 커피 레코드 수정 ``` UPDATE coffee SET price = 9900 WHERE id = 4 ; ``` #### 커피 레코드 삭제 ``` DELETE FROM coffee WHERE id = 4 ; ``` ## 🔥 구글링 훈련하기 - JPA 쿼리 로그 - JPA GeneratedValue IDENTITY - SQL CREATE TABLE - SQL UPDATE - SQL DELETE - SQL WHERE 사용법