본문 바로가기
Spring Boot/Spring Boot 입문 홍팍

[Spring boot] (17) CRUD와 SQL 쿼리

by 몰라닉네임 2023. 8. 8.

Mission
데이터 CRUD 과정의 SQL 쿼리를 분석하시오

 

JPA 의 Repository를 통해서 손쉽게 데이터를 관리할 수 있었다. 
 Repository가 요청을 보내면 DB는 자신의 언어 SQL 쿼리문을 통해 데이터를 테이블에 관리한 것이다.

1. JPA 로깅 설정
# 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

 


2. SQL 쿼리 로크 확인
crud 동작으로 인한 sql 쿼리를 확인해보자


3.ID 자동 생성 전략 
게시물을 생성하면 데이터 id 중복 에러가 나는데 데이터의 대표값은 겹치면 안된다.

entity/ Article
@GeneratedValue(strategy = GenerationType.IDENTITY) // DB가 id를 자동 생성 어노테이션!

4. 생성(INSERT) 쿼리
create과정에 어떤 sql이 동작했는지 확인
INSERT INTO ARTICLE (id, content, title)
VALUES(id, content, title)

5.조회(SELECT) 쿼리

6.갱신(UPDATE) 쿼리
UPDATE ARTICLE 
SET 
 CONTENT = 
 TITLE = 
WHERE ID = 4;
7. 삭제(DELETE) 쿼리
DELETE FROM ARTICLE WHERE ID = 3;

 


요약
로깅 설정은 application.properties에서
데이터가 추가될 때 id 값이 중복되면 안된다 그렇게 해주기 위해 ->
 @GeneratedValue(strategy = GenerationType.IDENTITY) // DB가 id를 자동 생성 어노테이션!

 


  • -기본 SQL 쿼리 연습

0. 커피 테이블 삭제

drop table coffee;

 

select * from coffee;

 

1. 커피 테이블 만들기 
create table coffee (
       id bigint generated by default as identity,
        name varchar(255),
        price varchar(255),
        primary key (id)
    )


2. 커피 데이터 생성 
insert  
    into
        coffee
        (id, name, price) 
    values
        (1, '아메리카노', 4100)


insert 
into
       coffee
       (id, name, price) 
    values
        (2, '라떼', 4600 ),
(3, '모카', 5100 ),
(4, '오늘의 커피', 3800 );


3.커피 데이터 조회 read
select 
id ,name, price
from coffee
where
id = 3;



4.커피 데이터 갱신 update
update
coffee
set 
price = 9900
where
id=4;

 



5.커피 데이터 삭제  delete
delete 
from 
coffee
where
id = 4;

 


🔥 구글링 훈련하기

  • JPA 쿼리 로그
  • JPA GeneratedValue IDENTITY
  • SQL CREATE TABLE
  • SQL UPDATE
  • SQL DELETE
  • SQL WHERE 사용법

 

내용참고

https://www.youtube.com/channel/UCpW1MaTjw4X-2Y6MwAVptcQ

 

홍팍

클라우드스터딩 | CloudStudying | 온라인 코딩학습 | 프로그래밍 강의 채널 https://cloudstudying.kr

www.youtube.com