쿼리 : DB에 정보를 요청하는 구문.(INSERT,SELECT,UPDATE,DELETE)
로깅 : 시스템이 작동할 때 당시의 상태와 작동 정보를 기록하는 것
로깅 레벨
TRACE(레벨1) : DEBUG 레벨보다 더 상세한 정보
DEBUG(레벨2) : 응용 프로그램을 디버깅하는 데 필요한 세부 정보
INFO(레벨3) : 응용 프로그램의 순조로운 진행 정보
WARNING(레벨4) : 잠재적으로 유해한 상황 정보
ERROR(레벨5) : 응용 프로그램이 수행할 수 있는 정도의 오류 정보
FATAL(레벨6) : 응용 프로그램이 중단될 만한 심각한 오류 정보
OFF(레벨7) : 로깅 기능 해제
(INFO로 설정하면 레벨3~7의 모든 로그 기록됨)
# JPA 로깅 설정
# 디버그 레벨로 쿼리 출력
logging.level.org.hibernate.SQL=DEBUG
# 쿼리 줄바꿈하기
spring.jpa.properties.hibernate.format_sql=true
# 매개변수 값 보여 주기
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
# DB URL 설정
# 유니크 URL 생성하지 않기
spring.datasource.generate-unique-name=false
# 고정 URL 설정하기
spring.datasource.url=jdbc:h2:mem:testdb
데이터 생성 시 Unique index or primary key violation 에러 발생
: 더미데이터에서 작성한 INSERT문에서 id=1,2,3 데이터를 추가했음. 또한 Article.java에서 @GeneratedValue를 통해 DB에 데이터를 생성하면서 id를 1부터 증가하도록 하게 함-> 중복 발생 -> @GeneratedValue(strategy=GenerationType.IDENTITY를 통해 DB가 id를 자동 생성하게 함. data.sql에서 id속성과 속성값 삭제하기->중복해결
!!!!@GeneratedValue(strategy=GenerationType.IDENTITY)로 DB에서 id 자동 생성하는 작업을 Article 엔티티뿐만 아니라 Member 엔티티에서도 같이 해줘야 오류가 발생하지 않는다. (data.sql에서 데이터 더미만들 때 Article이랑 Member 둘다 만들었어서!!)
쿼리 동작 확인하기
새 글 작성 후 Submit(데이터 생성) -> 상세페이지 조회로 연결(데이터 조회)
insert(데이터 생성)
- id에 default적혀있음 확인(DB가 id 알아서 생성)
- content, title에 ?들어있음. 다음 줄에 생성된 Article에서 title=라라라라, content=4444 확인 가능
?란 JPA에서 DB로 전달하는 매개변
select(데이터 조회)
- 상세 페이지 조회(단일 데이터 조회)
WHERE절에서 id가 ?인 데이터를 가져오라고 되어 있음. 이때 ?의 값은 로그에서 id=4임을 확인할 수 있음. 즉, id가 4번인 데이터 조회
- 목록 페이지 조회(전체 데이터 조회)
select절 : 조회할 속성(id, content, title)
from절 : 조회할 테이블 명(article)
update(데이터 수정)
delete(데이터 삭제)
'Back-end > Spring boot' 카테고리의 다른 글
[Spring boot] 11일차_HTTP와 REST 컨트롤러 (1) | 2024.01.07 |
---|---|
[Spring boot] 10일차_REST API와 JSON (1) | 2024.01.06 |
[Spring boot] 8일차_게시글 삭제 Delete (0) | 2023.12.04 |
[Spring boot] 7일차_게시글 수정 Update (1) | 2023.12.03 |
[Spring boot] 6일차_게시판 내 페이지 이동하기 (0) | 2023.12.02 |