JDBC 등장 계기일반적으로 애플리케이션을 개발하면 중요한 데이터는 대부분 데이터베이스(RDB, NoSQL)에 보관한다.클라이언트가 애플리케이션 서버를 통해 데이터를 저장하거나 조회하면, 애플리케이션 서버는 다음 과정을 통해 데이터베이스를 사용한다.커넥션 연결: 주로 TCP/IP를 사용해서 커넥션을 연결한다.SQL 전달: 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달한다.결과 응답: DB는 전달된 SQL을 수행하고 그 결과를 응답한다. 애플리케이션 서버는 응답 결과를 활용한다.여기서 발생할 수 있는 문제는 각각의 데이터베이스마다 커넥션을 연결하는 방법, SQL을 전달하는 방법, 그리고 결과를 응답 받는 방법이 모두 다르다는 점이다. 여기서 발생할 수 있는 문제는 크..
@Entity @Entity가 붙은 클래스는 JPA가 관리하게 된다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity를 필수로 선언해야 한다. 하이버네이트는 프록시 DB 연산 결과를 상속한 클래스의 기본 생성자를 호출하여 매핑한다. 이때, 알맞게 결과 값을 넣어주기 위해서는 public 또는 protected 레벨의 기본 생성자가 필요하다. @Entity public class Member{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; public Member(){ } public Member(final Long id, final String name){ this.id = ..
준영속 상태 준영속 상태란, 영속상태의 엔티티가 영속성 컨텍스트에서 분리된 것이다. 준영속 상태가 되면 영속성 컨텍스트가 제공하는 기능(dirty checking)을 사용하지 못한다. 준영속 상태로 만드는 방법 em.detach(entity) 특정 엔티티만 준영속 상태로 전환한다. Member findMember = em.find(Member.class, 2L); // 현재 member의 name은 hello이다. findMember.setName("hyuuny"); // findMember를 준영속 상태로 변경한다. em.detach(findMember); System.out.println("member : " + findMember); tx.commit(); findMember의 name을 "hyuu..
플러시(flush 플러시(flush)는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것이다. 데이터베이스 transaction commit이 발생하면 자동 플러시(flush)가 발생한다. 플러시는 영속성 컨텍스트의 변경 내용을 데이터베이스에 동기화하는 것이지 영속성 컨텍스트를 비우는 것은 아니다. transaction이라는 작업 단위가 있기 때문에 플러시(flush)가 동작 가능한것이다. 플러시(flush) 발생 플러시(flush)가 발생하면 다음과 같은 일이 발생한다. 1. 변경 감지(Dirty checking) 발생 2. 수정된 엔티티의 내용을 쓰기 지연 SQL 저장소에 등록 3. 쓰기 지연 SQL 저장소의 query를 데이터베이스에 전송(등록, 수정, 삭제) 영속성 컨텍스트 플러시(flus..
- Total
- Today
- Yesterday
- 자료구조
- 스프링
- mysql 8.0
- 노마드
- 노마드코더
- leetcode
- 코틀린
- MySQL
- 김영한
- 스프링 부트
- 인프런
- 알고리즘
- 스프링부트
- 북클럽
- Spring
- spring boot
- Real MySQL
- 그리디
- 데이터베이스
- webflux
- 정렬
- 코테
- 백준
- Algorithm
- 파이썬
- kotlin
- 릿코드
- 리팩토링
- 구현
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |