jpa 썸네일형 리스트형 [JAVA | SPRING | MVC | CRUD] 게시물 단건조회 1. 데이터베이스 연결 Java 애플리케이션에서 데이터베이스와 상호작용하려면 JDBC(Java Database Connectivity)를 사용하거나, JPA(Java Persistence API) 또는 MyBatis와 같은 ORM(Object-Relational Mapping) 프레임워크를 사용할 수 있다. 데이터베이스 연결 과정은 보통 다음과 같이 진행된다:JDBC: DriverManager.getConnection(url, user, password)을 사용하여 데이터베이스에 연결JPA: EntityManager를 통해 엔티티(Entity)를 조회MyBatis: SqlSession 객체를 통해 SQL 매핑 파일에서 작성한 쿼리를 실행 2. 쿼리 실행단건 조회를 하기 위해서는 SQL 쿼리를 작성하여 .. 더보기 [Red&Blue]토론게시판 CRUD만들기 등록에 대하여 문제 상황 토론 게시판에 등록,조회,수정,삭제 기능을 만들어야하는데 모든 코드들을 보면 setter를 사용하여 데이터를 생성하지 않고 생성자를 만들어서 get하여 캡슐화를 하는 것을 알 수 있다. 또한 빌더패턴사용에 대해 알아보고 JPA로 작업하면서 사용된 어노테이션에 대해서 알아보자. 요구 사항 1. JPA의 작성기능 흐름에 대해 알아보자.2. 사용된 어노테이션에 대해 이해해보자.3. 빌터 패턴 이전의 순수 자바문법을 이해해보자. 필요 개념 1. JPA 영속성 컨텍스트에 엔티티 저장영속성 컨텍스트는 엔티티를 영속 상태로 관리하는 JPA의 메커니즘이다. 쉽게 말해, 애플리케이션과 데이터베이스 사이의 중간 캐시 역할을 하며, 엔티티의 상태 변화를 추적하고, 데이터베이스와의 동기화를 책임진.. 더보기 [스프링부트| 스프링부트와 JPA 활용 1 | 웹 애플리케이션 개발 | 회원 도메인 개발] 회원 리포지토리 개발 회원 기능 -회원 등록 -회원 조회상품 기능 -상품 등록 -상품 수정-상품 조회주문 기능-상품 주문-주문 내역 조회 -주문 취소개발 순서: 서비스, 리포지토리 계층을 개발하고, 테스트 케이스를 작성해서 검증, 마지막에 웹 계층 적용@Repository // 스프링 컨테이너에 이 클래스가 데이터 리포지토리 역할을 한다고 표시public class MemberRepository { @PersistenceContext // JPA 엔티티 매니저를 자동으로 주입받기 위한 어노테이션 private EntityManager em; // 엔티티 매니저 객체 선언, 데이터베이스 조작을 담당 public void save(Member member) { em.persist(member); //.. 더보기 [스프링| 스프링 입문 | 코드로 배우는 스프링] JPA package hello.hellospring.repository; // 패키지 선언import hello.hellospring.domain.Member; // Member 도메인 클래스 임포트import jakarta.persistence.EntityManager; // JPA의 EntityManager 임포트import java.util.List; // List 컬렉션 임포트import java.util.Optional; // Optional 클래스 임포트public class JpaMemberRepository implements MemberRepository{ // MemberRepository 인터페이스를 구현하는 JpaMemberRepository 클래스 선언 private final E.. 더보기 [ JPA | 강의 따라 공부하기 ] 4.find()와 getReference()의 차이 find()메소드 find 메소드는 EntityManager에서 조회 연산을 수행한다. 첫번째 파라미터로 엔티티 타입을 지정하고 두번째 파라미터로 식별자를 전달한다. 엔티티 매니저는 그 값을 조회해 쿼리를 만들어서 데이터 베이스의 객체를 가져오게 된다. UserEntity userEntity = entityManager.find(UserEntity.class,email); 여기서 식별자는 @Id 어노테이션이 정의된 필드를 사용한다. 엔티티를 조회했을 때 식별자와 매핑되는 엔티티가 존재하면 엔티티 객체를 리턴하고 매핑되는 엔티티가 없으면 null을 리턴한다. getReference()메소드 getReference메소드는 find메소드와 마찬가지로 EntityManager에서 조회 연산을 수행한다. 첫번째 .. 더보기 [ JPA | 강의 따라 공부하기 ] 3. CRUD 기능 사용법 소개 및 TypedQuery맛보기 3.1. 데이터 추가하기 데이터를 추가하는 일반적인 진행 단계 EntityManager를 생성한다.(by EntityManagerFactory) - 트랜젝션을 가지고 있다. EntityTransaction을 시작한다.(by EntutyManager) 저장하고자 하는 Entity를 생성한다. - 먼저 만들어도 된다. EntityManager.persist()메소드를 통해 영속성 컨텍스트에 Entity객체를 저장한다. - 변경감지를 통해 데이터베이스에 저장하여 사전준비를 한다. EntrityTransaction.commit()메소드를 통해 DB에 실제 반영한다. Exception.3~5단계에서 예외가 발생할 경우transaction.rollback() 6. EntityManager.close()종료 3.2... 더보기 [ JPA | 강의 따라 공부하기 ] 2.커스텀 EntityManagerFactory 만들기 EntityManagerFactory 영속적 컨텍스트가 데이터를 엑세스하는 영역에서 뿐아니라 프로그램이 실행되는 프레젠테이션 영역까지 사용하기 위해 커스텀 EntityManager로 static한 클래스를 만들어서 관리하도록 한다. package studio.aroundhub.entity_manager_factory.factory; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class CEntityManagerFactory { // 커스텀 private static EntityManagerFactory entity.. 더보기 [ JPA | 강의 따라 공부하기 ] 1.JPA 기본설정 JPA JPA란 JAVA Persistence API의 약자로 자바의 ORM표준 스펙을 정의한다. JPA의 스펙은 자바의 객체와 데이터베이스를 어떻게 매핑하고 동작해야 하는지를 정의하고 있다. JPA는 어플리케이션의 필드값들을 데이터베이스에서 데이터값과 매핑을 시켜주는 역할을 한다. 하이버네이트 ORM Framework 중 하나 ‘JPA 프로바이더’ 라고도 부른다 JPA의 실제 구현체중 하나이며 현재 JPA구현체중 가장 많이 사용된다. 영속성 컨텍스트는 JPA가 관리하는 엔티티 객체의 집합니다. 엔티티 객체가 영속 컨텍스트에 들어오게 되면 JPA는 엔티티 객체의 매핑 정보를 가지고 DB에 반영한다. 엔티티 객체가 영속 컨텍스트에 들어오게 되어 관리 대상이 되면 그 객체를 영속 객체라고 한다. 영속성 컨텍.. 더보기 이전 1 다음