JPA 로깅 설정하기
서버에서 데이터의 생성,조회,수정,삭제등을 요청하면 JPA 리파지터리가 DB에 해당 요청을 전달하면 요청을 받은 DB는 자신의 언어 (SQL)로 쿼리를 작성해 테이블 속 데이터를 관리
※쿼리(Query)란 DB에 정보를 요청하는 구문을 지칭 데이터의 생성은 INSERT문 , 조회는 SELECT문, 수정은 UPDATE문 , 삭제는 DELETE문을 사용
- 쿼리를 분석하기 위해 JPA 로깅 설정 을 하기위해 application.properties 파일에 logging.level.org.hibernate.SQL=DEBUG 추가
- 로깅 레벨의 7단계
- TRACE(레벨1): DEBUG 레벨보다 더 상세한 정보
- DEBUG(레벨2): 응용 프로그램을 디버깅하는 데 필요한 세부 정보
- INFO(레벨3): 응용 프로그램의 순조로운 진행 정보
- WARN(레벨4): 잠재적으로 유해한 상황 정보
- ERROR(레벨5): 응용 프로그램이 수행할 수 있는 정도의 오류 정보
- FATAL(레벨6): 응용 프로그램이 중단될 만한 심각한 오류 정보
- OFF(레벨7): 로깅 기능 해제
- 로깅 레벨의 7단계
- 쿼리들이 한 줄로 나와 한눈에 보기 어렵기 때문에 정렬하기 위해 application.properties 파일에 spring.jpa.properties.hibernate.format_sql=true 코드 추가
- JPA 쿼리에서 DB에서 넘어가는 매개변수 값을 확인하기위해 logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 코드 추가
- H2 DB에 접속할때 매번JDBC URL 을 새로 검색하였는데 고정시키기 위해
유니크 URL 생성하지 않기 위해 spring.datasource.generate-unique-name=false 코드 추가 고정 URL 설정하기하기위해 spring.datasource.url=jdbc:h2:mem:testdb 코드 추가
SQL 쿼리 로그 확인하기
- 데이터 생성 시 : INSERT 문
- id 자동 생성 전략 추가하기
- entity패키지 아래에 있는 Article파일에 @GeneratedValue 어노테이션에서 괄호를 열고 strategy = GenerationType.IDENTITY를 입력한 후 괄호닫기. 이렇게 하면 데이터를 생성할 때마다 DB가 알아서 ID값을 넣어줌
- id 자동 생성 전략 추가하기
- 데이터 조회 시 : SELECT 문
- SELECT 문은 조회할 속성 여기서는 id, content. title이고 FROM절에는 조회할 테이블 명인 article 로 입력됨
- 데이터 수정 시 : UPDATE 문
- WHERE 절에 id를 입력함
- 데이터 삭제 시 : DELETE 문
- 이번에는 WHERE절에 id값으로 지움





기본 SQL 쿼리 작성하기
- COFFEE 테이블 만들기
- entity 패키지 안에 Article파일을 보면 코드 윗부분에 @Entity가 있어 이 클래스를 테이블로 만들고 속성으로는 private 로 설정 되어있는 변수들이 들어가있다.
- CREATE TABLE 문 형식
- SQL 문은 항상 마지막에 세미콜론(;)을 붙혀야 한다.

CREATE TABLE 테이블명 (
속성명1 자료형,
속성명2 자료형,
속성명3 자료형,
PRIMARY KEY (기본키)
);

- COFFEE 데이터 생성하기
- INSERT 문을 사용해서 COFFEE 테이블에 데이터 생성
- 데이터를 여러개 넣을때는 쉼(,)을 사용해서 만듬
- INSERT 문을 사용해서 COFFEE 테이블에 데이터 생성


- COFFEE 데이터 조회하기
- SELECT 문을 사용해서 조회하기
- 조건절 (WHERE) 이 없으면 전체 조회 조건이 있으면 그 조건에 맞는 데이터만 조회
- SELECT 문을 사용해서 조회하기


- COFFEE 데이터 수정하기
- UPDATE 문을 사용해서 데이터 수정
- UPDATE 문을 사용할때는 조건(WHERE)이 없으면 테이블 안에 모든 ROW가 수정됨


- COFFEE 데이터 삭제하기
- DELETE 문을 사용하여 데이터 삭제
- DELETE 문도 조건을 사용해서 삭제 조건이 없으면 테이블 모든 ROW 가 삭제됨


'BE > 스프링 부트 3' 카테고리의 다른 글
11장 REST API의 동작 이해하기 (0) | 2023.12.13 |
---|---|
10장 REST API 와 JSON (0) | 2023.12.10 |
8장 게시글 삭제하기: Delete (2) | 2023.12.02 |
7장 게시판 수정하기 :Update (0) | 2023.11.29 |
6장 게시판 내 페이지 이동하기 (0) | 2023.11.24 |