10) Spring Boot CRUD와 SQL 쿼리 종합
1.JPA 로깅 설정
JPA 동작 시 로그를 보기 위한 설정은 application.properties 파일에 작성합니다.
로깅 레벨은 총 7단계 중 하나를 선택할 수 있는데, SQL 로그를 보려면 DEBUG 레벨로 설정합니다.
SQL 쿼리에 줄바꿈을 적용해서 보려면 format_sql 옵션을 true로 설정합니다.
JPA 쿼리에서 DB로 넘어가는 매개변수 값을 확인하기 위해 sql의 BasicBinder를 TRACE로 설정합니다.
resources/application.properties
# JPA 로깅 설정 # 디버그 레벨로 쿼리 출력 logging.level.org.hibernate.SQL=DEBUG # 쿼리 줄바꿈하기 spring.jpa.properties.hibernate.format_sql=true # 매개변수 값 보여 주기 logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE |
2. 기본키와 ID 자동 생성 전략
기본키란 테이블에 저장된 각 데이터를 유일하게 구분할 수 있도록 지정한 속성이다.
보통 id를 기본키로 많이 사용하는데, @GeneratedValue 어노테이션의 전략을 IDENTITY로 설정하면 DB가 id를 자동으로 생성하므로 id 값이 중복되지 않는다.
@GeneratedValue(strategy = GenerationType.IDENTITY)
3. CRUD와 SQL 쿼리
서버에서 데이터의 생성, 조회, 수정, 삭제 등의 CRUD 요청을 하면 JPA의 리파지터리가 DB에 해당 요청을 전달합니다.
요청을 받은 DB는 자신의 언어인 SQL로 작성한 쿼리를 사용해 테이블에서 데이터를 관리합니다.
데이터의 생성 요청이 들어왔을 때는 INSERT문, 조회 요청이 들어왔을 때는 SELECT문, 수정 요청이 들어왔을 때는 UPDATE문, 삭제 요청이 들어왔을 때는 DELETE 문을 수행합니다.
4. CREATE TABLE문
테이블을 만드는 쿼리로, 테이블명, 속성명, 속성의 자료형, 기본키 등을 설정합니다.
CREATE TABLE 테이블명( 속성명1 자료형, 속성명2 자료형, 속성명3 자료형, PRIMARY KEY (기본키) ); |
5. INSERT 문
테이블에 데이터를 생성하는 쿼리로, 한 번에 하나 또는 여러 데이터를 삽입할 수 있습니다.
INSERT INTO 테이블명 (속성명1, 속성명2, 속성명3, ...) VALUES (값1, 값2, 값3, ... ); |
6. SELECT 문
테이블에 데이터를 조회하는 쿼리로, WHERE 절이 없으면 조건 없이 모든 데이터를 조회합니다.
SELECT 속성명1, 속성명2, 속성명3 FROM 테이블명 WHERE 조건; |
7. UPDATE 문
테이블에 데이터를 수정하는 쿼리로, WHERE 절이 없으면 조건 없이 모든 데이터를 수정합니다.
UPDATE 테이블명 SET 속성명=변경할 값 WHERE 조건; |
8. DELETE 문
테이블에서 데이터를 삭제하는 쿼리입니다.
WHERE 절이 없으면 조건 없이 모든 데이터를 삭제하고 빈 테이블만 남습니다.
DELETE [FROM] 테이블명 WHERE 조건; |
'Back-End > Spring Boot' 카테고리의 다른 글
13) Spring Boot 서비스 계층과 트랜잭션 (1) | 2023.11.29 |
---|---|
11) Spring Boot Rest API와 JSON (0) | 2023.11.29 |
9) Spring Boot 게시글 삭제하기: Delete (0) | 2023.11.28 |
8) Spring Boot 게시글 수정하기: Update (1) | 2023.11.27 |
7) Spring Boot 게시판 내 페이지 이동하기 (0) | 2023.11.27 |