Java(35)
-
[LG U+ 유레카 3기]순수JPA 실습 — JPQL (Java Persistence Query Language)
🧩 JPA 실습 ⑤ — JPQL (Java Persistence Query Language)이번 실습에서는 JPQL의 기본 개념과 Typed Query, 파라미터 바인딩을 학습했다.JPQL은 SQL처럼 보이지만, 실제로는 엔티티 객체를 기준으로 질의하는 객체지향 쿼리 언어다.즉, “테이블명”이 아닌 “엔티티 클래스명(Book)”과 “컬럼명”이 아닌 “필드명(bookname, price)”으로 작성된다.❶ 프로젝트 폴더 구조JPABasic_JPQL ├─ src/main/java/ │ ├─ entity/ │ │ └─ Book.java │ └─ Test.java │ ├─ src/main/resources/ │ └─ META-INF/ │ └─ persistence.xml │ └─ ..
2025.10.20 -
[LG U+ 유레카 3기]순수 JPA 실습 엔티티 생명주기 (persist / find / merge / detach / remove)
🧩 JPA 실습 ③ — 엔티티 생명주기 (persist / find / merge / detach / remove)이번 실습은 JPA 엔티티의 전체 생명주기를 다루며, 각 메서드가 영속성 컨텍스트에 어떤 영향을 주는지를 직접 확인한다.결과적으로 JPA의 작동 원리를 완전히 이해할 수 있는 핵심 단계다.❶ 실습 목표persist() : 새로운 객체를 영속성 컨텍스트에 등록find() : DB 데이터를 객체화하여 1차 캐시에 저장merge() : 존재하면 update, 없으면 insert 수행detach() : 엔티티를 영속성 컨텍스트에서 분리remove() : 엔티티 삭제 (1차 캐시 및 DB 반영)❷ 코드 구성src/main/java/ ├─ config/MyPersistenceUnitInfo.java ..
2025.10.20 -
[LG U+ 유레카 3기]JPA 영속성 컨텍스트와 1차 캐시 실습 및 정리
JPA 영속성 컨텍스트와 1차 캐시 완전 정리이번 실습은 persist() 호출 시점과 실제 INSERT SQL 실행 시점의 차이를 이해하기 위한 핵심 주제다.즉, “JPA가 객체를 어떻게 관리하고 언제 DB에 반영하는가”를 실습으로 확인한다.❶ 프로젝트 구성src/main/java/entity/ ├─ Product.java └─ Test.javasrc/main/resources/META-INF/ └─ persistence.xml📄 Product.java@Entitypublic class Product { @Id private int id; private String name; // getter/setter}📄 Test.javaimport jakarta.persistence.En..
2025.10.20 -
[LG U+ 유레카 3기] MyBatis 실습 준비 | Maven 환경 세팅 정리
❶ 상황 설명MyBatis 실습(ch01~ch03)을 진행하기 전에 가장 중요한 단계는 개발 환경 세팅과 폴더 구조 이해이다.MyBatis는 단순히 코드만 작성한다고 돌아가지 않는다. Java가 설치되어 있어야 하고, Maven이 의존성을 관리해야 하며, 프로젝트 내부의 src/main/java와 src/main/resources가 각자 역할을 나눠서 협력해야 한다.❷ JDK 설치 및 환경 변수 설정MyBatis는 Java로 동작하기 때문에 JDK(Java Development Kit)가 필수다. JDK 17 버전 이상을 권장한다.① JDK 다운로드Oracle JDK 다운로드 페이지로 이동Windows x64 Installer 다운로드 후 설치설치 경로 예시 : C:\Program Files\Java\j..
2025.10.17 -
[LG U+ 유레카 3기] MyBatis ch03 실습 | SqlSessionFactory 직접 구성하기
❶ 상황 설명ch03에서는 MyBatis의 내부 동작 구조를 직접 구성해보는 실습이었다.이전 ch02까지는 XML 설정 파일(mybatis-config.xml)을 이용했지만, 이번에는 자바 코드에서 Configuration 객체를 이용해 환경(Environment), 트랜잭션 팩토리(TransactionFactory), 데이터소스(DataSource), 매퍼(Mapper)를 직접 등록하여 SqlSessionFactory를 수동으로 생성했다.❷ 코드 및 실행 흐름① SqlSessionFactory 직접 구성 코드package ch03;import org.apache.ibatis.datasource.pooled.PooledDataSource;import org.apache.ibatis.mapping.Envi..
2025.10.17 -
[LG U+ 유레카 3기] MyBatis ch02 |어노테이션 매핑 실습
❶ 상황 설명ch02 실습에서는 MyBatis 설정 파일의 구성 요소와 Mapper XML의 역할을 본격적으로 다루었다.이전 ch01에서는 Java 코드 내부에서 Mapper를 등록했다면, 이번에는 mybatis-config.xml과 BookMapper.xml을 이용해 환경 설정과 SQL을 완전히 분리하는 것이 핵심이었다.❷ 코드 및 실행 흐름① mybatis-config.xml ② BookMapper.xml SELECT * FROM book; ③ Java 코드 (BookApp.java)package ch02;import java.io.Reader;import java.u..
2025.10.17